2014-10-02 59 views
0

在MySQL中,如何使用两个更新语句的使用联合,或同时运行两个更新语句,所以我得到两个受影响的行数)?在MySQL中联合两个更新语句来获得受影响的行的数量

我试图将它们两个一起运行,而不是有两个单独的。他们两个更新两个不同的行,所以他们不能在一个语句中一起运行。任何帮助?

例子:

​​

更新:就是这么做的,但它仍然会返回受影响的行为一体。我想它只是返回第二条语句的行数。

$stmt = ' 
    update prodb set buyer = buyer+1 where userId = 1; 
    update prodb set seller = seller+1 where userId = 2; 
'; 

$update = $dbc->prepare($stmt); 

$update->execute(); 

回答

2

不要使用union进行更新。使用multi_query(如果你正在运行php)。

$db_link->multi_query("update prodb set buyer = buyer+1 where userId = 1; update prodb set seller = seller+1 where userId = 2;"); 

永远不要忘记在最后的sql语句中添加分号。

+0

使用PHP的PDO时,这可能吗? – jmenezes 2014-10-02 14:33:05

+0

似乎是这样。 [链接](http://stackoverflow.com/questions/6346674/pdo-support-for-multiple-queries-pdo-mysql-pdo-mysqlnd) – 2014-10-02 14:36:23

+0

我得到它的工作,但有趣的是,它仍然返回1作为受影响的行,即使受影响的行数是两个。 – jmenezes 2014-10-02 14:59:45

相关问题