当前位置:  数据库>mysql

MySql中使用INSERT INTO语句更新多条数据的例子

    来源: 互联网  发布时间:2014-10-15

    本文导语:  我们知道当插入多条数据的时候insert支持多条语句: 代码如下: INSERT INTO t_member (id, name, email) VALUES     (1, 'nick', 'nick@126.com'),     (4, 'angel','angel@163.com'),     (7, 'brank','ba198@126.com'); 但是对于更新记录,由于update语法不支...

我们知道当插入多条数据的时候insert支持多条语句:

代码如下:

INSERT INTO t_member (id, name, email) VALUES
    (1, 'nick', 'nick@126.com'),
    (4, 'angel','angel@163.com'),
    (7, 'brank','ba198@126.com');

但是对于更新记录,由于update语法不支持一次更新多条记录,只能一条一条执行:

代码如下:

UPDATE t_member SET name='nick', email='nick@126.com' WHERE id=1;
UPDATE t_member SET name='angel', email='angel@163.com' WHERE id=4;
UPDATE t_member SET name='brank', email='ba198@126.com' WHERE id=7;

这里问题就出现了,倘若这个update list非常大时(譬如说5000条),这个执行率可想而知。

这就要介绍一下在MySql中INSERT语法具有一个条件DUPLICATE KEY UPDATE,这个语法和适合用在需要判断记录是否存在,不存在则插入存在则更新的记录。

具体的语法可以参见:http://dev.mysql.com/doc/refman/5.0/en/insert.html

基于上面这种情况,针对更新记录,仍然使用insert语句,不过限制主键重复时,更新字段。如下:

代码如下:

INSERT INTO t_member (id, name, email) VALUES
    (1, 'nick', 'nick@126.com'),
    (4, 'angel','angel@163.com'),
    (7, 'brank','ba198@126.com')
ON DUPLICATE KEY UPDATE name=VALUES(name), email=VALUES(email);

注意:ON DUPLICATE KEY UPDATE只是MySQL的特有语法,并不是SQL标准语法!

    
 
 

您可能感兴趣的文章:

  • MySQL 一次执行多条语句的实现及常见问题
  • mysql合并多条记录的单个字段去一条记录编辑
  • mysql 一次更新(update)多条记录的思路
  • HTML教程 iis7站长之家
  • 使用distinct在mysql中查询多条不重复记录值的解决办法
  • mysql 批量更新与批量更新多条记录的不同值实现方法
  • MySQL 性能优化的最佳20多条经验分享
  • mysql中查询当前正在运行的SQL语句并找出mysql中运行慢的sql语句
  • mysql 里面的sql语句的连接字符是什么?急用!
  • Mysql增加主键或者更改表的列为主键的sql语句
  • MYSQL速度慢的问题 记录数据库语句
  • Mysql下在某一列后即表的某一位置添加新列的sql语句
  • 允许远程用户访问mysql服务sql语句
  • mysql update语句的用法详解
  • mysql自定义排序顺序语句
  • mysql查询语句通过limit来限制查询的行数
  • mysql快速添加百万条记录的语句
  • mysql与mssql的md5加密语句
  • mysql通过查看跟踪日志跟踪执行的sql语句
  • mysql 动态执行存储过程语句
  • mysql 前几条记录语句之(limit)
  • MYSQL修改所有表的存储引擎格式语句
  • mysql 获取当天发布的信息的语句
  • mysql中将null值转换为0的语句
  • MySql获取某个字段存在于哪个表的sql语句
  • Mysql 取字段值逗号第一个数据的查询语句
  • MySQL 存储过程中执行动态SQL语句的方法
  • 大家好,在mySQL中建一个自动得日期的字段的语句是什么?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 谁有连接远程mysql的例子?看下列代码错在何处?
  • 有谁在linux下用c++读mysql数据库啊!有没有例子让小弟参考啊!急!!!!
  • 怎么在linux上用c程序调用mysql数据库,可以给一段例子么?
  • 关于mysql简单例子
  • ubuntu下设置mysql自动备份的例子
  • php mysql创建临时表的例子
  • MySQL 创建索引(Create Index)的方法和语法结构及例子
  • 谁能给出一个QT连接数据库(MySQL)的完整的例子,感激不尽,100分相赠。
  • Linux下启动多个mysql服务器例子
  • 有关mysql中ROW_COUNT()的小例子
  • MySQL一个索引最多有多少个列?真实的测试例子
  • MySQL 错误处理例子[译]
  • 优化mysql的limit offset的例子
  • php页面缓存的例子 php缓存降低mysql压力
  • php获取mysql字段名称和其它信息的例子
  • 450,我全部的分急求java应用程序操作mysql数据库的例子
  • 从一个MySQL的例子来学习查询语句
  • JAVA/JSP学习系列之六(MySQL翻页例子)
  • JAVA/JSP学习系列之八(改写MySQL翻页例子)
  • MySQL存储过程例子(包含事务,输出参数,嵌套调用)
  • mysql中如何查看最大连接数(max_connections)和修改最大连接数
  • 在 linux下输入"mysql"命令,进入mysql命令行,但出现“Can't connetc to local MySQL server thuough socket /var/lib/mysql/mysql.sock
  • Mysql查询错误:ERROR:no query specified原因
  • MySQL 重装MySQL后, mysql服务无法启动
  • php安装完成后如何添加mysql扩展
  • 为什么用linux安装盘安装了mysql后,启动mysql,提示找不到mysql.sock文件?
  • Myeclipse中自带Tomcat的JDBC连接池配置(mysql和mssql)
  • 請教,在redhat linux7.2+mysql 中,系統提示mysql已啟動,網頁卻不能訪問mysql?
  • MySQL Workbench的下载安装与使用教程
  • 求解释: useradd -g mysql mysql -d /home/mysql -s /sbin/nologin
  • php中内置的mysql数据库连接驱动mysqlnd简介及mysqlnd的配置安装方式


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3