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

 更新时间:2014年06月25日 11:28:52   投稿:junjie  
这篇文章主要介绍了MySql中使用INSERT INTO语句更新多条数据的例子,MySQL的特有语法,需要的朋友可以参考下

我们知道当插入多条数据的时候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标准语法!

相关文章

  • mysql8.0忘记密码修改与net命令服务名无效问题

    mysql8.0忘记密码修改与net命令服务名无效问题

    这篇文章主要介绍了mysql8.0忘记密码修改与net命令服务名无效的问题与解决方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-12-12
  • mysql和oracle默认排序的方法 - 不指定order by

    mysql和oracle默认排序的方法 - 不指定order by

    这篇文章主要介绍了mysql和oracle默认排序的方法 - 不指定order by。具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • MYSQL如何自动为查询数据的结果编上序号详解

    MYSQL如何自动为查询数据的结果编上序号详解

    这篇文章主要给大家介绍了关于MYSQL如何自动为查询数据的结果编上序号的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧。
    2017-11-11
  • MySQL运维实战之使用二进制安装部署

    MySQL运维实战之使用二进制安装部署

    这篇文章主要为大家介绍了MySQL运维实战之使用二进制安装部署示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • mysql间隙锁的具体使用

    mysql间隙锁的具体使用

    MySQL中有多种锁类型,本文主要介绍了mysql间隙锁的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • MySQL和Redis的数据一致性问题

    MySQL和Redis的数据一致性问题

    这篇文章主要介绍了MySQL和Redis的数据一致性问题,下面文章围绕Redis大的相关资料展开详情,需要的小伙伴可以参考一下
    2022-04-04
  • Linux系统下MySQL配置主从分离的步骤

    Linux系统下MySQL配置主从分离的步骤

    MySQL数据库自身提供的主从复制功能可以实现数据的多处自动备份,实现数据库的拓展,多个数据备份不仅加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能,这篇文章主要给大家介绍了关于在Linux系统下MySQL配置主从分离的相关资料,需要的朋友可以参考下
    2022-03-03
  • 快速增加MYSQL数据库连接数负载能力的方法分享

    快速增加MYSQL数据库连接数负载能力的方法分享

    mysql数据库的负载能力除了和你机器硬件有关,还有一个重要参数就是你系统的配置有关,下面我来给大家介绍几种提高MYSQL数据库连接数负载能力方法总结,有需要的朋友可以参考一下
    2013-08-08
  • MYSQL 表的全面总结

    MYSQL 表的全面总结

    这篇文章主要介绍了MYSQL表,文章主要围绕MySQL表的相关资料如创建表、删除表、修改表、等展开内容,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • 解决修改mysql的data_dir所引发的错误问题

    解决修改mysql的data_dir所引发的错误问题

    本文给大家分享解决修改mysql的data_dir所引发的错误问题,非常不错具有参考借鉴价值,需要的朋友参考下吧
    2017-04-04

最新评论