位置: 编程技术 - 正文

mysql批量更新多条记录的同一个字段为不同值的方法(mysql批量更新多条数据)

编辑:rootadmin

推荐整理分享mysql批量更新多条记录的同一个字段为不同值的方法(mysql批量更新多条数据),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql批量更新字段,mysql 批量更新,mysql批量更新字段,mysql批量更新数据 多个条件,Mysql批量更新多个字段,Mysql批量更新多个字段,mysql批量更新多少条合适,Mysql批量更新多个字段,内容如对您有帮助,希望把文章链接给更多的朋友!

首先mysql更新数据的某个字段,一般这样写:

也可以这样用in指定要更新的记录:

这里注意 ‘other_values' 是一个逗号(,)分隔的字符串,如:1,2,3

如果更新多条数据而且每条记录要更新的值不同,可能很多人会这样写:

即是循环一条一条的更新记录。一条记录update一次,这样性能很差,也很容易造成阻塞。

那么能不能一条sql语句实现批量更新呢?

mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。

如果where条件查询出记录的id不在CASE范围内,myfield将被设置为空。

mysql批量更新多条记录的同一个字段为不同值的方法(mysql批量更新多条数据)

如果更新多个值的话,只需要稍加修改:

这里以php为例,构造这两条mysql语句:

1、更新多条单个字段为不同值, mysql模式

输出:

2、更新多个字段为不同值, PDO模式

输出:

另外三种批量更新方式

1. replace into 批量更新

2. insert into ...on duplicate key update批量更新

3. 临时表

【replace into】和【insert into】更新都依赖于主键或唯一值,并都可能造成新增记录的操作的结构隐患 【replace into】操作本质是对重复记录先delete然后insert,如果更新的字段不全缺失的字段将被设置成缺省值 【insert into】则只是update重复的记录,更改的字段只能依循公式值 【临时表】方式需要用户有temporary 表的create 权限 数量较少时【replace into】和【insert into】性能最好,数量大时【临时表】最好,【CASE】则具有通用型也不具结构隐患

总结

本文链接地址:https://www.jiuchutong.com/biancheng/349820.html 转载请保留说明!

上一篇:Windows下MySQL 5.7无法启动的解决方法

下一篇:在Linux环境下mysql的root密码忘记解决方法(三种)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络