有时候需要批量修改数据,如果循环修改单个,则会非常影响数据库连接量,比较好的方式就是拼接成一条sql,一次执行

/*** 批量更新* @param  [arr] $datas               [要保存的数据集]*$data[] = array('id'=>1,'value'=>value1);$data[] = array('id'=>2,'value'=>value2);$data[] = array('id'=>3,'value'=>value3);* @param  [string] $database_table_name [数据库表名]* @param  [string] $primary_key         [主键名]* @return [int]                      [成功修改的条数]*/
function dbSaveAll($datas, $database_table_name, $primary_key){$sql   = ''; //Sql$lists = []; //记录集$lists$pk    = $primary_key;//获取主键foreach ($datas as $data) {foreach ($data as $key=>$value) {if($pk===$key){$ids[]=$value;}else{$lists[$key].= sprintf("WHEN %u THEN '%s' ",$data[$pk],$value);}}}foreach ($lists as $key => $value) {$sql.= sprintf("`%s` = CASE `%s` %s END,",$key,$pk,$value);}$sql = sprintf('UPDATE __%s__ SET %s WHERE %s IN ( %s )',strtoupper($database_table_name),rtrim($sql,','),$pk,implode(',',$ids));return M()->execute($sql);
}

调用

// 保存到数据库$result = dbSaveAll($vote_projects, 'Vote_project', 'order_number');if($result){$this->success('写入成功!', __APP__ . '/Admin/Vote/get_all_pro');}else {$this->error('数据已同步,无需重复写入');}

thinkphp 同时更新多条数据相关推荐

  1. mysql更新多条数据6_mysql语句:批量更新多条记录的不同值

    mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 如果更新同一字段为同一个值,mysql也很简单,修改下where即可: 这里注意 'other_values' 是一个逗号(,)分隔的字 ...

  2. mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)

    mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...

  3. android动态更新数据库数据,Android数据库更新——上万条数据的插入

    在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚 ...

  4. mysql一条sql更新多条数据_执行一条sql语句update多条记录实现思路

    如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?本文以一个示例向大家讲解下如何实现如标题所示的情况,有此需求的朋友可以了解下 通常情况下,我们会使用以下SQL语句来更新字段值: ...

  5. MySql 中 一次update更新多条数据

    我最近遇到一个导入Excel表中数据到数据库的需求,数据量一万多条.需先查询数据库中是否存在要插入的数据,若存在则更新数据,否则插入数据.我首先按照常规思路先查询,然后插入或更新.然而nginx返回 ...

  6. Laravel批量更新多条数据

    前言 近期在刷新生产环境数据库的时候,需要更新表中的字段,如果对每条数据结果都执行一次update语句,占用的数据库资源就会很多,而且速度慢,显得也不高大上. 因为项目是Laravel框架,Larav ...

  7. mongodb一次性更新多条数据updateMany

    mongodb数据库一次性更新多个带有相同属性名的数据 具体语法为 运行后username值就全变了 刷新数据库 具体语法为 //更新单条 语法是:Article.updateOne({ 查询条件}, ...

  8. mysql insert into多条_MySql中使用INSERT INTO语句更新多条数据的例子

    我们知道当插入多条数据的时候insert支持多条语句: 复制代码 代码如下: INSERT INTO t_member (id, name, email) VALUES (1, 'nick', 'ni ...

  9. thinkphp 随机取10条数据_spark调优-数据倾斜

    1.数据倾斜发生时的现象 绝大多数task执行得都非常快,但个别task执行极慢.比如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余两三个task却要一两个小时.这种情况 ...

  10. thinkphp批量更新php,thinkphp6数据批量更新

    方法1: $sql="UPDATE $this->table SET "; $primarykeyfield="id"; $updatekeys=arra ...

最新文章

  1. 域滤波:方框、高斯、中值、双边滤波
  2. cors spring_Spring,REST,Ajax和CORS
  3. grep, egrep
  4. RocketMQ之事务消息
  5. 新特性 | Java8 的这个特性,用起来真的很爽!
  6. Intel 64/x86_64/IA-32/x86处理器指令集 - CPUID (2) - 起源
  7. 机器成为家人!华为发布2025十大趋势展望...
  8. 响应已被截断_技术:RWD响应式网站网页设计基本原则
  9. 配置 LDAP 服务器
  10. Docker存储驱动之总览
  11. java radix sort_Java RadixSort
  12. 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
  13. java future 设计模式_转多线程设计模式 - Future模式之JAVA原生实现
  14. 射频通信接收机设计的主要结构
  15. 《JavaScript高级程序设计》学习笔记 JavaScript基本(1)
  16. html相册 自动,ACDSee的HTML相册生成
  17. 关于线程耗尽导致请求超时系统假死的思考
  18. Nacos的连接拒接丶解决方案
  19. Volatility2.6内存取证工具安装及入门
  20. IOT物联网安全概述

热门文章

  1. ERP:“造势”,还是“做事”
  2. BZOJ4152 AMPPZ2014 The Captain 【最短路】【贪心】*
  3. python 正则表达式 符号及其定义
  4. error: ignoring return value of 编译错误处理
  5. 小波变换和motion信号处理(二)
  6. linux 6.5 mongdb php扩展插件,linux下为php添加mongodb扩展
  7. db2 jdbc 连接池_jdbc连接db2后getString(XXX)出来的字符串是乱码
  8. yii2 提供接口给java_Yii2 使用 RESTful 写API接口 实例
  9. Java从入门到精通 第5章 数据类型
  10. Ubuntu16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细