这篇文章主要介绍了在mysql中使用一条sql语句插入多条数据,效率非常高,但是原理其实很简单,希望对大家有所帮助

假如有一个数据表A:

id name title addtime

如果需要插入n条数据 :

$time= time();

$data = array(

array(

'name'=>'name1','title'=>'title1','addtime'=>$time;

),

array(

'name'=>'name2','title'=>'title2','addtime'=>$time;

),

array(

'name'=>'name3','title'=>'title3','addtime'=>$time;

),

...

array(

'name'=>'nameN','title'=>'titleN','addtime'=>$time;

),

);

之前我的想法会是,通过数据构造多条插入语句,循环调用 。如:

$sql1 = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('name1','title1','".$time."')";

$sql2 = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('name2','title2','".$time."')";

......

$sqlN = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('nameN','titleN','".$time."')";

之后发现了sql的insert语句可以一次插入多条:

$sql = "INSERT INTO `A`(`name`,`title`,`addtime`)VALUES ('name1','title1','".$time."'),";

$sql .= "('name2','title2','".$time."'),";

$sql .= "('name3','title3','".$time."'),";

.....

$sql .= "('nameN','titleN','".$time."')";

通过","号将多个数据分隔开来,就可以能过一条sql操作来解决多个数据的插入,之前试验时,在插入数据条数为30的情况下,一次插入与多次插入同样数据的速度相比,一次插入快了近9倍。同时,因为插入操作只有一次,所以也类似事务操作,插入失败则全失败,插入成功则全成功,使数据的管理更加方便。所以,如果有多条数据需要插入同一个表的,尽量用这种方式。

以前插入多条数据库记录时,常这么写:

$b = 14;

for($a=0;$a<100;$a++){

$sql = " INSERT INTO `roles` (`uid`,`rid`) VALUES (".$a.",".$b.")";

mysql_query($sql);

}

但这种写法效率低下,需要多次执行sql语句。如果你用过phpmyadmin导入数据,其实你会发现,上面的语句其实可以这么写

INSERT INTO `roles` (`uid`,`rid`) VALUES

(534,14),(535,14),(536,14),(537,14),(539,14)

所以原来的代码可以这么改写

$b = 14;

for($a=0;$a<100;$a++){

if($a==0)

$sql = "INSERT INTO `roles` (`uid`,`rid`) VALUES (".$a.",".$b.")";

else

$sql. = ",(".$a.",".$b.")";

}

mysql_query($sql);

mysql自动添加多条数据_用一条mysql语句插入多条数据相关推荐

  1. 用一条mysql语句插入多条数据

    这篇文章主要介绍了在mysql中使用一条sql语句插入多条数据,效率非常高,但是原理其实很简单,希望对大家有所帮助 假如有一个数据表A: id name title addtime 如果需要插入n条数 ...

  2. mysql 一对多 关联一条最新的数据_不得不会的mysql锁

    6. 多表之间的关系 如图,实际业务数据库中的表之间都是有关系的,我们接下来主要要学习的就是如何分析表关系及建立表关系. 分类表 create table category( cid varchar( ...

  3. mysql查询结果随机取一个_从SQL查询结果随机取一条数据

    最近工作中会涉及复杂的SQL语句,还是挺有意思的.以前想写没有应用场景,现在正好可以多锻炼锻炼.我觉得在实际开发中,程序代码并不是最难的,最难的还是SQL.SQL逻辑性最强,而且还要很清楚表设计,业务 ...

  4. c mysql显示多条数据_用一条mysql语句插入多条数据

    假如有一个数据表A: id name title addtime 如果需要插入n条数据 : $time= time(); $data = array( array( 'name'=>'name1 ...

  5. mysql如何快速插入数据_如何快速向Mysql插入大量数据?

    本文摘要 本文演示了3分钟如何向MySQL数据库中插入100万条数据的实例. 一.编写测试案例向MySQL数据库中插入百万条数据.测试数据表建表脚本如下:use db_xk; drop table i ...

  6. mysql查询前5条记录_各个数据库中,查询前n条记录的方法

    SQL查询前10条的方法为: 1.select top X *  from table_name --查询前X条记录,可以改成需要的数字,比如前10条. 2.select top X *  from  ...

  7. mysql里添加不了中文_为什么MySQL不能添加中文

    我的MYSQL的编码配置是没有什么问题的!..但是当我在WEB程序中往MySQL中添加数据时他就是会报错!在浏览器中的错误是: org.springframework.jdbc.Uncategoriz ...

  8. 2批量批量查询数据插入数据_不吹牛!Mysql 千万数据10秒批量插入只需三步

    作者:师太,老衲把持不住了 原文:http://suo.im/4RYaVg 第一步:配置my.ini文件文件中配置bulk_insert_buffer_size=120M 或者更大将insert语句的 ...

  9. mysql数据库中怎么删除一行_数据库教程_mysql如何删除表中一行数据?- 中国it教程网...

    mysql中使用DELETE语句删除表中一行数据,语句为"DELETE FROM 表名称 WHERE 列名称 = 值".删除所有行的语句为"DELETE FROM tab ...

最新文章

  1. 深度学习与计算机视觉系列(1)_基础介绍
  2. pl/sql中文显示为乱码解决
  3. Java使用Redis实现分布式锁来防止重复提交问题
  4. C++学习——构造函数,析构函数与虚函数关系
  5. android 指示灯权限,Android实现LED灯显示效果
  6. 转:华 为 路 由 常 用 命 令
  7. 极简代码(八)—— binary activation function
  8. 【转】Boost库概述
  9. macos下刻录系统盘
  10. Kolmogorov 的数学观与业绩
  11. 使用 VBRichClient 库
  12. JVM虚拟机基础知识(JVM位置、类加载生命周期、堆、元空间、jvm常用参数)
  13. 财会法规与职业道德【10】
  14. MAC word删除空白页与分节符
  15. CVE-2017-11176: A step-by-step Linux Kernel exploitation (part 3/4)
  16. html树状图怎么搜索节点,echarts2.* tree树形图节点点击事件和节点点击图标更改...
  17. 如何做一个动态的图片时钟?
  18. 2021年危险化学品经营单位主要负责人考试题库及危险化学品经营单位主要负责人免费试题
  19. 10、刷牛客网SQL题(四)
  20. python namedtuple用法_详解Python中namedtuple的使用

热门文章

  1. 蓝牙模块怎么指定查询另一个蓝牙模块_蓝牙模块以IPEX端口外接天线、PCB板载天线最为常见...
  2. Quick Audience组织和工作空间功能解读
  3. 天池读书会来啦,带你体验沉浸式读书新方式
  4. 使用 CoreDNS sidecar 来优化 Kubernetes Pod dns 性能
  5. 消息队列之延时消息应用解析及实践
  6. 什么技能产品经理不会提,但技术人必须懂?
  7. Unity手游开发札记——移动平台的天气系统实现
  8. 美观实用 最新《生化危机》主题人体工学游戏椅公开
  9. mysql workbench画E-R图,并根据E-R生成sql(步骤超完整)
  10. 数据库面试题【十九、count(字段) count(主键 id) count(1)count(*)的区别】