根据现有值更新多个值

时间:2019-10-11 00:11:23

标签: sqlite

我有一张桌子some_table

id | some_integer
---|-------------
 1 |      ?
 2 |      ?
 3 |      ?

我如何(并且可以在一个查询中完成)将some_table更新为:

  • id1的地方,将some_integer加1
  • id2的地方,将some_integer减少2
  • id3的地方,将some_integer增加3

使some_table像这样:

id | some_integer
---|-------------
 1 |    ? + 1
 2 |    ? - 2
 3 |    ? + 3

谢谢!

2 个答案:

答案 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);
相关问题