如何为两个单独的ID更新列?

时间:2016-06-12 21:48:53

标签: php mysql sql pdo

我有这两个问题:

$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可以同时使用吗?

1 个答案:

答案 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')