我有一个名为test的表,该表有多行,其中有三列:id,数据,内容
我有一个ID列表以及该键的相应数据。像这样:
list = [(1,"a"),(2,"b"),(10,"c")]
现在,我只想更新ID为1、2、10的数据行中分别具有值“ a”,“ b”和“ c”的行。那就是我想用ID为1,2和10的值“ a”,“ b”和“ c”更新列数据。
我尝试了不同的方法,但都失败了。
我不想在更新逻辑中使用“ case when”,因为会有很多多行(这里举个例子,我只花了3行来更新数据,但实际上这要比那个。
答案 0 :(得分:1)
使用update from
尝试以下操作:
update test_table set data = temp_table.data
from (values
(1, 'a'),
(2, 'b'),
(10, 'c')
) as temp_table(id, data)
where temp_table.id = test_table.id;
演示-SQL Fiddle