0

我有一个简单的表,其中包含两列 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
4

1 回答 1

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 的重复也很恶心。)

于 2013-08-21T06:25:32.633 回答