我有以下两个查询:
$dbh
->prepare("UPDATE user
SET reputation = reputation - 15
WHERE id = ?")
->execute(array($old_author));
$dbh
->prepare("UPDATE user
SET reputation = reputation + 15
WHERE id = ?")
->execute(array($new_author));
我想知道是否可以通过一个查询来做到这一点?我是说我可以在同一查询的两个用户的
- 15
列中同时使用+ 15
和reputation
吗? 最佳答案
使用case
表达式可以在一个查询中执行此操作。
UPDATE user
SET reputation = case id when '123' then reputation - 15
when '124' then reputation + 15
end
where id in ('123','124')
关于php - 如何更新两个分开的ID的列?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37779391/