我有这两个问题:
$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
可以同时使用吗?
答案 0 :(得分:2)
使用case
表达式在一个查询中执行此操作。
UPDATE user
SET reputation = case id when '123' then reputation - 15
when '124' then reputation + 15
end
where id in ('123','124')