在mysql中联合两个更新语句以获取两者的受影响行的计数

时间:2014-10-02 14:18:30

标签: mysql sql

在MySQL中,如何将use union与两个更新语句一起使用,或者同时运行两个更新语句,这样我得到两个(一起)受影响行的计数?

我试图将他们两个一起运行,而不是分开两个。它们中的两个更新了两个不同的行,因此它们不能在一个语句中一起运行。有什么帮助吗?

示例:

update prodb set buyer = buyer+1 where userId = 1
 union
update prodb set seller = seller+1 where userId = 2;

更新:这样做了,但它仍然将受影响的行作为一个返回。我猜它只返回第二个语句中的行数。

$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();

1 个答案:

答案 0 :(得分: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语句中添加分号。