0

我有一个数据库, PlayerID, goals, yellows,reds 我想做的是在单个语句中根据 playerID 和偶数(目标、黄色、红色)增加列。目前它一次完成一个 playerID:

UPDATE players SET $event=$event+1 WHERE id=$playerID

$event字段名称在哪里(goals, yellows, reds)

我想做的就是在一个声明中包含所有内容。如果您想象玩家 1 得到黄色而玩家 2 得到红色,那么我会将声明想象为:

UPDATE players SET (yellows=yellows+1,reds=reds+1) WHERE id=(1,2)

我知道上面的代码是错误的,但我希望它有助于让我了解我想要做什么。每个SET参数对应于各自的id参数。单独它会是:

  UPDATE players SET yellows=yellows+1 WHERE id=1
  UPDATE players SET reds=reds+1 WHERE id=2  

不是在寻找:

UPDATE players SET (yellows=yellows+1,reds=reds+1) WHERE id IN (1,2)
4

1 回答 1

1

如果你想要一个UPDATE声明:

UPDATE players 
SET yellows = CASE WHEN id = 1 
                     THEN yellows + 1
                     ELSE yellows
                   END  
  , reds    = CASE WHEN id = 2 
                     THEN reds + 1
                     ELSE reds 
              END
WHERE id IN (1, 2) ;  
于 2012-06-10T21:07:01.437 回答