1、.replace into 批量更新

$sql = replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y');

test_tbl 为表名

id 对应的主键或者判断的唯一值,最好是主键,这样数据库检索较快

dr 对应这的字段,有多个字段可以在后面加上

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

$sql = insert into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y') on duplicate key update dr=values(dr);

该方法只update重复记录,不会改变其他字段

3、创建临时表,先更新临时表,然后从临时表中update

create temporary table tmp(id int(4) primary key,dr varchar(50));

insert into tmp values (0,'gone'), (1,'xx'),...(m,'yy');

update test_tbl, tmp set test_tbl.dr=tmp.dr where test_tbl.id=tmp.id;

注意:这种方法需要用户有temporary 表的create 权限。

这方法涉及到两个数据表的操作,也有可能造成大压力

4、使用mysql 自带的语句构建批量更新

mysql 实现批量 可以用点小技巧来实现:

UPDATE yoiurtable

SET dingdan= CASEid

WHEN1 THEN 3WHEN2 THEN 4WHEN3 THEN 5

ENDWHERE id IN (1,2,3)

这句sql 的意思是,更新dingdan 字段,如果id=1 则dingdan 的值为3,如果id=2 则dingdan 的值为4…… where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。

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

UPDATE categories

SET dingdan= CASEid

WHEN1 THEN 3WHEN2 THEN 4WHEN3 THEN 5

END,title= CASEid

WHEN1 THEN 'New Title 1'WHEN2 THEN 'New Title 2'WHEN3 THEN 'New Title 3'

ENDWHERE id IN (1,2,3)

到这里,已经完成一条mysql语句更新多条记录了

然后代码示例如下:

$display_order = array(1 => 4,

2 => 1,

3 => 2,

4 => 3,

5 => 9,

6 => 5,

7 => 8,

8 => 9);$ids = implode(',', array_keys($display_order));$sql = "UPDATE categories SET display_order = CASE id ";foreach ($display_order as $id => $ordinal) {$sql .= sprintf("WHEN %d THEN %d ", $id, $ordinal);

}$sql .= "END WHERE id IN ($ids)";echo $sql;

该方法就是在数据进行处理时适合使用,能够让人清晰处理过程

对于数据库操作来说,最好的还是原生的sql语句执行效果最好,并且没有多次连接数据库的操作才好,所以优先的推荐还是方法2,insert into ...on duplicate key update

mysql 批量replace into_replace into 批量更新相关推荐

  1. mybatis批量插入(insert)和批量更新(update)

    文章目录 一.Mybatis批量插入 二.批量更新 前言:这两天在做mybatis批量插入和更新的时候,对这块不是很清楚,所以今天写篇文章,巩固加深印象. 一.Mybatis批量插入 批量插入的sql ...

  2. batchupdate写法_mybatis执行批量插入insert和批量更新update

    Mybatis批量插入和批量更新数据的资料相信大家从网上能查找到很多资料,本文重点总结一下mybatis执行批量插入insert和批量更新update数据.在mysql数据库中批量插入,如:inser ...

  3. linux中sed怎么反选,awk的批量replace功能

    awk的批量replace功能 需求 现在需要替换一个文本 文本内容如下 $cat file MD_D1TS_1_060_I MD_D1TS_1_061_F MD_D1TS_1_062_U MD_D1 ...

  4. 【C#】MySQL数据库数据导入(批量Excel插入)

    系列文章 [C#]代码模板生成工具 本文链接:https://blog.csdn.net/youcheng_ge/article/details/126890673 [C#]MySQL数据库导入工具( ...

  5. c mysql 批量插入_c#之mysql四种带事务批量插入

    前言 对于像我这样的业务程序员开发一些表单内容是家常便饭的事情,说道表单 我们都避免不了多行内容的提交,多行内容保存,自然要用到数据库,如果循环打扰我数据库,数据库也会觉得很累,从而增加数据库服务器压 ...

  6. tp5大数据批量导入mysql_TP5框架下MySQL通过LOAD DATA INFILE批量导入数据详细操作

    LOAD DATA INFILE 语句用法 参考手册 本文语句参数使用默认值 PHP: TP框架环境// 定义文件路径 $file_path = 'LOAD_DATA_LOCAL_INFILE.txt ...

  7. SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入)

    原文:SqlBulkCopy与触发器,批量插入表(存在则更新,不存在则插入) 临时表:Test /****** 对象: Table [dbo].[Test] 脚本日期: 05/10/2013 11:4 ...

  8. tp5 excel 导入 mysql_TP5框架下MySQL通过LOAD DATA INFILE批量导入数据详细操作

    LOAD DATA INFILE 语句用法 参考手册 本文语句参数使用默认值 PHP: TP框架环境// 定义文件路径 $file_path = 'LOAD_DATA_LOCAL_INFILE.txt ...

  9. mysql循环load data_TP5框架下MySQL通过LOAD DATA INFILE批量导入数据详细操作

    LOAD DATA INFILE 语句用法 参考手册 本文语句参数使用默认值 PHP: TP框架环境// 定义文件路径 $file_path = 'LOAD_DATA_LOCAL_INFILE.txt ...

最新文章

  1. SAP Netweaver 7.4 SR2 Application Java Installation
  2. ERROR 1222 (21000): The used SELECT statements have a different number of columns :
  3. linux truss strace ltrace 对比 诊断调试程序
  4. Ubuntu用户设置文件说明
  5. mysql 存储过程 查询结果 循环_在存储过程中从查询结果集中怎么循环
  6. python access_Python3 os.access() 方法
  7. 正则表达式2-测试代码
  8. 波卡生态数据基础设施组件Kylin Network与借贷平台DefiCliq达成合作
  9. 统计学硕士做了3年表格,多次跳槽失败,只因学不会数据工具
  10. 树莓派Linux内核编译选项如何开启TPM 2.0
  11. atitit.信息安全的控制总结o7
  12. VB 2010中Excel文件处理的一个奇怪问题
  13. aspectjweaver和aspectjrt的区别
  14. 台式计算机常用总线,计算机中常见的总线有哪些
  15. 【服务器】服务器运维必备软件;服务器安装环境、运维教程
  16. 我们将迎来另一个 VR 寒冬吗?
  17. 少儿平台e启学用户隐私协议
  18. 2021-11-02
  19. 华硕主板破Linux密码,解决华硕主板常见故障现象及方法
  20. yarn 编译环境时遇到的问题和解决方法

热门文章

  1. java切割输入流_IO流之切割合并文件
  2. 2017年你错过了哪些AI圈大事?最全盘点,值得收藏!
  3. 代做频谱分析,Map绘制 给出主要信号频率成分和相位,并据此重建信号; 绘制电机map图;
  4. 被口臭折磨到不敢张嘴!恋人嫌弃、朋友疏远、同事讨厌,还有救吗?
  5. mysql查询显示技巧_MYSQL SQL高级查询技巧
  6. leetcode/变位词组,变位词放一起
  7. C语言“按任意键退出”的实现方式
  8. python url解码_对python中url参数编码与解码的实例详解
  9. 玩转LSI SAS3阵列卡
  10. java传值给js 换行_JavaScript用document.write()输出换行的示例代码