mysql begin end 批量更新_MySql中4种批量更新的方法
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种批量更新的方法相关推荐
- mysql update批量更新_MySql中4种批量更新的方法
mysql 批量更新共有以下四种办法 1..replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,' ...
- mysql新建用户并授权_Mysql中新建用户及授权的方法分享
在项目开发的过程中可能需要开放自己的数据库给别人,但是为了安全不能自己服务器里其他数据库同时开放.那么可以新建一个用户,给该用户开放特定数据库权限 测试环境:Centos 6.3和Mysql 5.3 ...
- tomcat中三种部署项目的方法(转)
tomcat中三种部署项目的方法 第一种方法:在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: <Context path="/h ...
- QT中三种构建菜单栏的方法
QT中三种构建菜单栏的方法 方法1 <C++ GUI programming with Qt 4, Second Edition>给出的一种方法:QMenum定义单个菜单,调用menuBa ...
- Unity(游戏)中五种数据存储的方法
Unity(游戏)中五种数据存储的方法 一.PlayerPrefs unity3d提供了一个用于本地持久化保存与读取的类-------PlayerPrefs.工作原理很简单,以键值对的形式将数据保存在 ...
- java中高效遍历list_Java中四种遍历List的方法总结(推荐)
实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...
- matlab中几种求积分的方法
matlab中几种求积分的方法 举例图形 Midpoint Rule Trapezoid Rule 13 Simpsons 利用integral 结果显示 matlab中几种求积分的方法 最近看了几天 ...
- [重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别
[重学Java基础][Java IO流][Exter.2]IO流中几种不同的读写方法的区别 Read 读入方法 read(): 一般是这种形式 public int read() 1.从流数据中读取的 ...
- java遍历list_Java中四种遍历List的方法总结(推荐)
实例如下: package com.ietree.basic.collection.loop; import java.util.ArrayList; import java.util.Iterato ...
最新文章
- nginx虚拟目录设置 alias 和 root
- 字符串的截取和替换常用方法
- grasshopper for rhino 6下载_从SU到Rhino——lumion批量种树
- python二维数组去重复_php二维数组去重,array_unique出除重复数据
- 高中计算机室名言,高中班级激励格言
- The idea of ​​router network configuration
- adam优化_立即尝鲜!碾压Adam,最好的AI优化器RAdam来了
- [转载] Python基础:用Python统计列表中每个单词出现的次数(split 的使用,for双重循环)
- 查看JDK进程信息的几个命令
- ubuntu20.04 命令行下,复制与粘贴快捷键分别是ctrl+shift+c、 ctrl+shift+v
- 关于思科C2950交换机console清除密码,恢复初始配置的方法
- 即时编译器的中间表达形式(IR)
- python+windows画图工具--复现别人论文中的colormap 方法2
- 用python画花球_只靠一把小小剪刀!她把这些花养成了花球!
- MinIO 中的图片在前端列表渲染时报错 404
- ffmpeg源码分析 (二)
- 2022危险化学品经营单位安全管理人员考试练习题及在线模拟考试
- HCIE 面试资料-BFD/NSF/NSR/NTP
- 【UnityShader】光线追踪体积光
- 网页布局的方法有哪些?
热门文章
- 【HDOJ】4579 Random Walk
- java 命名代码检查-注解处理器
- ssh_config sshd_config 详解ssh_config sshd_config 详解
- SQL获取某个时间段的数据
- 用WPS表格轻松设计工资条
- linux qt5.9交叉编译,ubuntu16交叉编译Qt5.9
- maven编译java1.8项目_maven正在用java 1.7编译代码,但我想用1.8编译它
- table合并单元格colspan和rowspan
- 输电线路巡检机器人PPT_超高压输电线路巡检机器人系统
- linux tf命令,Linux系统命令介绍之vmstat命令详解