我有以下两个查询:

$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列中同时使用+ 15reputation吗?

最佳答案

使用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/

10-12 15:55