位置: 编程技术 - 正文
推荐整理分享mysql批量更新多条记录的同一个字段为不同值的方法(mysql批量更新多条数据),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:mysql批量更新字段,mysql 批量更新,mysql批量更新字段,mysql批量更新数据 多个条件,Mysql批量更新多个字段,Mysql批量更新多个字段,mysql批量更新多少条合适,Mysql批量更新多个字段,内容如对您有帮助,希望把文章链接给更多的朋友!
首先mysql更新数据的某个字段,一般这样写:
也可以这样用in指定要更新的记录:
这里注意 ‘other_values' 是一个逗号(,)分隔的字符串,如:1,2,3
如果更新多条数据而且每条记录要更新的值不同,可能很多人会这样写:
即是循环一条一条的更新记录。一条记录update一次,这样性能很差,也很容易造成阻塞。
那么能不能一条sql语句实现批量更新呢?
mysql并没有提供直接的方法来实现批量更新,但是可以用点小技巧来实现。
如果where条件查询出记录的id不在CASE范围内,myfield将被设置为空。
如果更新多个值的话,只需要稍加修改:
这里以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】则具有通用型也不具结构隐患总结
标签: mysql批量更新多条数据
本文链接地址:https://www.jiuchutong.com/biancheng/349820.html 转载请保留说明!友情链接: 武汉网站建设