我有一张桌子some_table
:
id | some_integer
---|-------------
1 | ?
2 | ?
3 | ?
我如何(并且可以在一个查询中完成)将some_table
更新为:
id
为1
的地方,将some_integer
加1 id
为2
的地方,将some_integer
减少2 id
为3
的地方,将some_integer
增加3 使some_table
像这样:
id | some_integer
---|-------------
1 | ? + 1
2 | ? - 2
3 | ? + 3
谢谢!
答案 0 :(得分:1)
UPDATE some_table
SET some_integer = some_integer + (CASE id WHEN 1 THEN 1 WHEN 2 THEN -2 WHEN 3 THEN 3 END)
WHERE id IN (1,2,3);
答案 1 :(得分:0)
使用CASE
表达式:
UPDATE yourTable
SET some_integer = CASE WHEN id = 1 THEN some_integer + 1
WHEN id = 2 THEN some_integer + 2
WHEN id = 3 THEN some_integer + 3 END
WHERE id IN (1, 2, 3);