在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();
答案 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语句中添加分号。