一、更新同一个字段的多条记录
执行一条sql语句update多条不同值的记录实现思路 - weixin_38423249的博客 - CSDN博客
https://blog.csdn.net/weixin_38423249/article/details/80503491
如果你想更新多行数据的某个字段的值,并且每行记录的字段值都是各不一样,想使用一条update语句修改,可以使用如下方法:
例:有表t,以及两个字段的数据
t_id t_status
'001' 2
'002' 4
'003' 1
'004' 5'005' 2
想要把这5条数据的状态分别改为(3,2,3,1,5)
则可执行如下操作:
UPDATE t
SET t_status = CASE t_id
WHEN '001' THEN 3
WHEN '002' THEN 2
WHEN '003' THEN 3
WHEN '004' THEN 1
WHEN '005' THEN 5
END
如果不加 where 其他没有 被case 出来的记录, 该字段会变为 null
UPDATE categories SET
display_order = CASE id
WHEN 1 THEN 3
WHEN 2 THEN 4
WHEN 3 THEN 5
END,
title = CASE id
WHEN 1 THEN 'New Title 1'
WHEN 2 THEN 'New Title 2'
WHEN 3 THEN 'New Title 3'
END
WHERE id IN (1,2,3)
二、更新一条记录里的多个字段
update 表名 set(字段1,字段2,字段3,...) = (select 数值1,数值2,数值3,...) where 条件