使用WHERE子句时,在MySQL中更新多行

时间:2013-08-21 06:23:31

标签: mysql

我有一个包含两列user_id,cumulative_score的简单表。我有一个流程可以让一群用户在任务上进行评估并为他们分配分数。现在我必须更新用户的累积分数。是否可以在单个查询中执行此操作

UPDATE scores where user_id = "a" set score = score + a_score 
and where user_id = "b" set score = score + b_score

1 个答案:

答案 0 :(得分:0)

好像你正在寻找CASE

UPDATE scores SET 
    score = score + (CASE WHEN user_id = 'a' THEN a_score ELSE b_score END) 
WHERE 
    user_id = 'a' OR user_id = 'b';

虽然根据具体情况,您可能最好只运行单独的查询。 (这个查询已经很难读了,而且user_id的重复很吵。)