我有一个包含的数据库 PlayerID, goals, yellows,reds
我想做的是根据单个语句中的 playerID 和偶数(目标、黄色、红色)递增列。目前,它一次完成一个玩家 ID:
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)
如果你想要一个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) ;