PHP中使用临时表批量更新数据 发表于 2018-11-27 | 分类于 php , 工作日志 | 3 条评论 > 接手维护公司一个内部使用的旧项目时碰到的问题,需要导入文件批量更新同个字段不同值的数据。 三年前的一个旧项目,最开始时单次仅需要更新数十至上百条数据,直接就是循环update。 而最近同事反馈说导入之后报错,功能完全没法用。 找同事拿来导入数据,说好的几十上百条的呢?这几万条数据是什么鬼?? 测试了下,没有意外,超时了。 没啥说的,上手优化吧。 需求很简单,根据导入数据的iccid更新cardnum字段值。 流程也很简单,**创建一张临时表**,**将数据批量insert into到临时表**,然后**根据临时表数据进行update**操作。 **伪代码**: //创建一张临时表tmp create temporary table tmp(iccid char(20) primary key,cardnum char(11)); //批量添加待更新的数据至tmp表,因为担心后续数量更大,实际项目里这里用循环分批添加的 insert into tmp values (iccid1,cardnum1),(iccid2,cardnum2),...(iccidx,cardnumx); //更新数据,mytable为要更新的数据表 update mytable,tmp set mytable.cardnum=tmp.cardnum where mytable.iccid=tmp.iccid; 完成。 效果还算可以,单次数万条数据,没有压力。 网上搜了下,还有其他方法,不过感觉都不太对我的需求,最后就使用这种临时表的方式来做了。 需要**注意**的是,这种方式需要有对**数据库**的**create权限**。
早上阿里云给老子发了一封主机攻击断网通知邮件,我才想起上博客看看,都他吗一年多没更新了。
你这个模板可以的啊,够简洁,找个空我也更新下算了。
还有你那关于模块的文字改换了。。。
我也懒得更新...主要天天都是curd,没啥好写的...
关于有啥好改的,不改,坚决不改,那才是重点。
不错