MySQL 一条SQL同时UPDATE多条记录

MySQL 一条SQL同时UPDATE多条记录,第1张

UPDATE tableNmae SET columnName = value WHERE columnName = otherValue

UPDATE tableNmae SET columnName = value WHERE columnName IN (otherValue1, otherValue2)

当然还有其他写法,这里只是举个例子。

首先要使用 IN 限定修改的数据,不使用 IN 的话在此语句中未进行设置值的会变成 NULL 或者默认值。

该语句会将 column2 值为相应 column2Value 的数据 column1 字段修改为对应的 column1Value 。

需求:

如何将多条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秒

你的意思是不是:

update test set name = case when id = 7 then 'LL1' when id = '8' else name end

需要注意,要考虑else情况,将原name赋值回去,否则会使id不为7和8的name变为null


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

原文地址: http://outofmemory.cn/zaji/6098263.html

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

发表评论

登录后才能评论

评论列表(0条)

保存