Sqlite:如何更新多个值?

kxxlusnw  于 2023-04-30  发布在  SQLite
关注(0)|答案(1)|浏览(361)

我有一个SQLITE表,其中有一列整数值,例如:

existing_rows = [1,2,3,4,5,6,7,8,9,0]

如何基于两个数组更新一些条目:从和到?假设

from = [1,3,5] 
to = [11,12,13]

操作后的existing_rows应为:

[11,2,12,4,13,6,7,8,9,0]

是否可以不创建额外的临时表?

6yt4nkrj

6yt4nkrj1#

假设列名为x,表名为y,并且只需要一条执行更新的语句

UPDATE y 
SET x = CASE 
WHEN x = 1 THEN 11 
WHEN x = 3 THEN 12 
WHEN x = 5 THEN 13 
END 
WHERE x in (1,3,5)

更新:
假设排除临时表只意味着真实的表而不是表值函数。..警告,您的数组值必须以JSON形式提供

CREATE TABLE y (x INTEGER);
INSERT INTO y VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(0);
UPDATE y SET x = json_extract(tmp.value,'$.replacement') FROM json_each('[{"value":1,"replacement":11},{"value":3,"replacement":12},{"value":5,"replacement":13}]') tmp WHERE x = json_extract(tmp.value,'$.value');
SELECT * FROM y;

相关问题