是否有类似WHERE IN的语法允许我一次更新多个值?例子:
update files set name = 'untitled' WHERE id IN (1,2,3,4)
变得:
update files set name ( 'untitled', 'untitled2', 'untitled3', 'untitled4' ) WHERE id IN (1,2,3,4)
我的脚本包含一个关联数组,我需要更新设置为数组值的name列,其中id列与数组键匹配
您在寻找对case帐单吗?
case
update files set name = (case when id = 1 then 'untitled' when id = 2 then 'untitled2' when id = 3 then 'untitled3' when id = 4 then 'untitled4' end) where id IN (1, 2, 3, 4);
在MySQL中,您也可以使用以下命令执行此操作join:
join
update files f join (select 1 as id, 'untitled' as newname union all select 2, 'untitled2' union all select 3, 'untitled3' union all select 4, 'untitled4' ) n on f.id = n.id f.name = new.newname;
如果您有很多值,则可以分别创建一个包含这些值的表,然后进行更新。