thinkphp 同时更新多条数据
有时候需要批量修改数据,如果循环修改单个,则会非常影响数据库连接量,比较好的方式就是拼接成一条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 同时更新多条数据相关推荐
- mysql更新多条数据6_mysql语句:批量更新多条记录的不同值
mysql更新语句很简单,更新一条数据的某个字段,一般这样写: 如果更新同一字段为同一个值,mysql也很简单,修改下where即可: 这里注意 'other_values' 是一个逗号(,)分隔的字 ...
- mysql如何更新两条数据_mysql根据查询结果批量更新多条数据(插入或更新)
mysql根据查询结果批量更新多条数据(插入或更新) 1.1 前言 mysql根据查询结果执行批量更新或插入时经常会遇到1093的错误问题.基本上批量插入或新增都会涉及到子查询,mysql是建议不要对 ...
- android动态更新数据库数据,Android数据库更新——上万条数据的插入
在实际情况下,很可能遇到会向一个表中插入10万条数据,而这样的数据库更新,如果用寻常的方式,在SQLiteOpenHelper.onUpdate()方法中不断的执行SQL语句,那么效率是可想而知的,甚 ...
- mysql一条sql更新多条数据_执行一条sql语句update多条记录实现思路
如果你想更新多行数据,并且每行记录的各字段值都是各不一样,你会怎么办呢?本文以一个示例向大家讲解下如何实现如标题所示的情况,有此需求的朋友可以了解下 通常情况下,我们会使用以下SQL语句来更新字段值: ...
- MySql 中 一次update更新多条数据
我最近遇到一个导入Excel表中数据到数据库的需求,数据量一万多条.需先查询数据库中是否存在要插入的数据,若存在则更新数据,否则插入数据.我首先按照常规思路先查询,然后插入或更新.然而nginx返回 ...
- Laravel批量更新多条数据
前言 近期在刷新生产环境数据库的时候,需要更新表中的字段,如果对每条数据结果都执行一次update语句,占用的数据库资源就会很多,而且速度慢,显得也不高大上. 因为项目是Laravel框架,Larav ...
- mongodb一次性更新多条数据updateMany
mongodb数据库一次性更新多个带有相同属性名的数据 具体语法为 运行后username值就全变了 刷新数据库 具体语法为 //更新单条 语法是:Article.updateOne({ 查询条件}, ...
- mysql insert into多条_MySql中使用INSERT INTO语句更新多条数据的例子
我们知道当插入多条数据的时候insert支持多条语句: 复制代码 代码如下: INSERT INTO t_member (id, name, email) VALUES (1, 'nick', 'ni ...
- thinkphp 随机取10条数据_spark调优-数据倾斜
1.数据倾斜发生时的现象 绝大多数task执行得都非常快,但个别task执行极慢.比如,总共有1000个task,997个task都在1分钟之内执行完了,但是剩余两三个task却要一两个小时.这种情况 ...
- thinkphp批量更新php,thinkphp6数据批量更新
方法1: $sql="UPDATE $this->table SET "; $primarykeyfield="id"; $updatekeys=arra ...
最新文章
- 域滤波:方框、高斯、中值、双边滤波
- cors spring_Spring,REST,Ajax和CORS
- grep, egrep
- RocketMQ之事务消息
- 新特性 | Java8 的这个特性,用起来真的很爽!
- Intel 64/x86_64/IA-32/x86处理器指令集 - CPUID (2) - 起源
- 机器成为家人!华为发布2025十大趋势展望...
- 响应已被截断_技术:RWD响应式网站网页设计基本原则
- 配置 LDAP 服务器
- Docker存储驱动之总览
- java radix sort_Java RadixSort
- 【原创】NIO框架入门(四):Android与MINA2、Netty4的跨平台UDP双向通信实战
- java future 设计模式_转多线程设计模式 - Future模式之JAVA原生实现
- 射频通信接收机设计的主要结构
- 《JavaScript高级程序设计》学习笔记 JavaScript基本(1)
- html相册 自动,ACDSee的HTML相册生成
- 关于线程耗尽导致请求超时系统假死的思考
- Nacos的连接拒接丶解决方案
- Volatility2.6内存取证工具安装及入门
- IOT物联网安全概述
热门文章
- ERP:“造势”,还是“做事”
- BZOJ4152 AMPPZ2014 The Captain 【最短路】【贪心】*
- python 正则表达式 符号及其定义
- error: ignoring return value of 编译错误处理
- 小波变换和motion信号处理(二)
- linux 6.5 mongdb php扩展插件,linux下为php添加mongodb扩展
- db2 jdbc 连接池_jdbc连接db2后getString(XXX)出来的字符串是乱码
- yii2 提供接口给java_Yii2 使用 RESTful 写API接口 实例
- Java从入门到精通 第5章 数据类型
- Ubuntu16.04 +cuda8.0+cudnn+caffe+theano+tensorflow配置明细