MySQL多行update合并一行书写

MySQL多行update合并一行书写,第1张

需求:

如何将多条update语句并为一条update语句:

如,update table1 set col='2012' haha='hello' where id='2014001'

update table1 set col='1009' haha='nihao' where id='2014003'

上面 这两行 执行之后,每一条需要5秒,总共需要10秒才能执行完.

如何合并为一条?

在网上找了好久,总结了一个相对简单的语句(有些语句是函数语句,有点晕),如下:

update table1 set col=(case id

when '2014001' then '2012'

when '2014003' then '1009' end),

haha=(case id

when '2014001' then 'hello'

when '2014003' then 'nihao' end)

where id in('2014001','2014003')

改成这个之后,还是需要5秒,但是,它只执行了一次,所以只需要5秒

我是sql初学者。

解决你的问题前我想问下,两个表有没有主键,更新数据是依据id还是姓名。

两个表如果每个人的id是唯一并且相同则可以根据id更新,尝试以下sql语句:

update b1 set b1.score=b2.score

from b1, b2

where b1.id=b2.id

更新姓名只需把score改为name


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8577066.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存