一、更新同一个字段的多条记录
执行一条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 条件
本文详细介绍如何使用SQL的CASE语句一次性更新多个记录的不同字段值,包括更新同一字段的多条记录及一条记录里的多个字段,适用于需要高效批量修改数据库场景。

3241

被折叠的 条评论
为什么被折叠?



