MYSQL 一条SQL里UPDATE多条记录

一、更新同一个字段的多条记录

 

执行一条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 条件

 

 

 

 

 

 

 

 

  • 7
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值