1、replace into 批量更新

replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y');例:

replace into book (`Id`,`Author`,`CreatedTime`,`UpdatedTime`) values (1,'张飞','2016-12-12 12:20','2016-12-12 12:20'),(2,'关羽','2016-12-12 12:20','2016-12-12 12:20');

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

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

insert into book (`Id`,`Author`,`CreatedTime`,`UpdatedTime`) values (1,'张飞2','2017-12-12 12:20','2017-12-12 12:20'),(2,'关羽2','2017-12-12 12:20','2017-12-12 12:20') on duplicate key update Author=values(Author),CreatedTime=values(CreatedTime),UpdatedTime=values(UpdatedTime);注:

replace into 和 insert into on duplicate key update的不同在于:

replace into 操作本质是对重复的记录先delete 后insert,如果更新的字段不全会将缺失的字段置为缺省值,用这个要悠着点否则不小心清空大量数据可不是闹着玩的。

insert into 则是只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 自带的语句构建批量更新

UPDATE yoiurtable

SET dingdan = CASE id

WHEN 1 THEN 3

WHEN 2 THEN 4

WHEN 3 THEN 5

END

WHERE id IN (1,2,3)这句sql 的意思是,更新dingdan 字段,如果id=1 则dingdan 的值为3,如果id=2 则dingdan 的值为4……

where部分不影响代码的执行,但是会提高sql执行的效率。确保sql语句仅执行需要修改的行数,这里只有3条数据进行更新,而where子句确保只有3行数据执行。

例:

UPDATE book

SET Author = CASE id

WHEN 1 THEN '黄飞鸿'

WHEN 2 THEN '方世玉'

WHEN 3 THEN '洪熙官'

END

WHERE id IN (1,2,3)如果更新多个值的话,只需要稍加修改:

UPDATE categories

SET dingdan = CASE id

WHEN 1 THEN 3

WHEN 2 THEN 4

WHEN 3 THEN 5

END,

title = CASE id

WHEN 1 THEN 'New Title 1'

WHEN 2 THEN 'New Title 2'

WHEN 3 THEN 'New Title 3'

END

WHERE id IN (1,2,3)例:

UPDATE book

SET Author = CASE id

WHEN 1 THEN '黄飞鸿2'

WHEN 2 THEN '方世玉2'

WHEN 3 THEN '洪熙官2'

END,

Code = CASE id

WHEN 1 THEN 'HFH2'

WHEN 2 THEN 'FSY2'

WHEN 3 THEN 'HXG2'

END

WHERE id IN (1,2,3)转载地址:http://www.cnblogs.com/PatrickLiu/p/6385167.html

mysql begin end 批量更新_MySql中4种批量更新的方法相关推荐

  1. mysql update批量更新_MySql中4种批量更新的方法

    mysql 批量更新共有以下四种办法 1..replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,' ...

  2. mysql新建用户并授权_Mysql中新建用户及授权的方法分享

    在项目开发的过程中可能需要开放自己的数据库给别人,但是为了安全不能自己服务器里其他数据库同时开放.那么可以新建一个用户,给该用户开放特定数据库权限 测试环境:Centos 6.3和Mysql 5.3 ...

  3. tomcat中三种部署项目的方法(转)

    tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加:  <Context path="/h ...

  4. QT中三种构建菜单栏的方法

    QT中三种构建菜单栏的方法 方法1 <C++ GUI programming with Qt 4, Second Edition>给出的一种方法:QMenum定义单个菜单,调用menuBa ...

  5. Unity(游戏)中五种数据存储的方法

    Unity(游戏)中五种数据存储的方法 一.PlayerPrefs unity3d提供了一个用于本地持久化保存与读取的类-------PlayerPrefs.工作原理很简单,以键值对的形式将数据保存在 ...

  6. java中高效遍历list_Java中四种遍历List的方法总结(推荐)

    实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...

  7. matlab中几种求积分的方法

    matlab中几种求积分的方法 举例图形 Midpoint Rule Trapezoid Rule 13 Simpsons 利用integral 结果显示 matlab中几种求积分的方法 最近看了几天 ...

  8. [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别

    [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...

  9. java遍历list_Java中四种遍历List的方法总结(推荐)

    实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...

最新文章

  1. nginx虚拟目录设置 alias 和 root
  2. 字符串的截取和替换常用方法
  3. grasshopper for rhino 6下载_从SU到Rhino——lumion批量种树
  4. python二维数组去重复_php二维数组去重,array_unique出除重复数据
  5. 高中计算机室名言,高中班级激励格言
  6. The idea of ​​router network configuration
  7. adam优化_立即尝鲜!碾压Adam,最好的AI优化器RAdam来了
  8. [转载] Python基础:用Python统计列表中每个单词出现的次数(split 的使用,for双重循环)
  9. 查看JDK进程信息的几个命令
  10. ubuntu20.04 命令行下,复制与粘贴快捷键分别是ctrl+shift+c、 ctrl+shift+v
  11. 关于思科C2950交换机console清除密码,恢复初始配置的方法
  12. 即时编译器的中间表达形式(IR)
  13. python+windows画图工具--复现别人论文中的colormap 方法2
  14. 用python画花球_只靠一把小小剪刀!她把这些花养成了花球!
  15. MinIO 中的图片在前端列表渲染时报错 404
  16. ffmpeg源码分析 (二)
  17. 2022危险化学品经营单位安全管理人员考试练习题及在线模拟考试
  18. HCIE 面试资料-BFD/NSF/NSR/NTP
  19. 【UnityShader】光线追踪体积光
  20. 网页布局的方法有哪些?

热门文章

  1. 【HDOJ】4579 Random Walk
  2. java 命名代码检查-注解处理器
  3. ssh_config sshd_config 详解ssh_config sshd_config 详解
  4. SQL获取某个时间段的数据
  5. 用WPS表格轻松设计工资条
  6. linux qt5.9交叉编译,ubuntu16交叉编译Qt5.9
  7. maven编译java1.8项目_maven正在用java 1.7编译代码,但我想用1.8编译它
  8. table合并单元格colspan和rowspan
  9. 输电线路巡检机器人PPT_超高压输电线路巡检机器人系统
  10. linux tf命令,Linux系统命令介绍之vmstat命令详解