mysql 临时表代替in的方法
mysql 临时表代替in的方法
public function infengzhuang($ziduanstr = '', $table = '',$whereziduan='',$instr = '', $wherestr = '') { $haomiao = $this->get_millisecond(); if (empty($instr)) { $sql = 'select ' . $ziduanstr . ' from ' . $table . $wherestr; $tmplist = $this->commongetinfo($sql); } else { $inattr = explode(',', $instr); $repairinattr = array(); foreach ($inattr as $k => $v) { $repairinattr[] = '(' . $v . ')'; } $repairinstr = join(',', $repairinattr); $sql = 'create temporary table tmp' . $haomiao . '(id int(4) primary key)'; $this->commonexecute($sql); $sql = 'insert into tmp' . $haomiao . ' values ' . $repairinstr; $this->commonexecute($sql); if (!empty($wherestr)) { $wherestr = ' and ' . $wherestr; } // $sql='select * from tmp' . $haomiao; // $list=$this->commongetinfo($sql); // print_r($list); // exit(); $sql = 'select ' . $ziduanstr . ' from ' . $table . ',tmp' . $haomiao . ' where ' . $table . '.'.$whereziduan.'=tmp' . $haomiao . '.id' . $wherestr; $tmplist = $this->commongetinfo($sql); } return $tmplist; }
当然也可以直接返回临时表
$wheredingdanstr = 'dingdanleixing="销售订单"'; $dianpuid='2,3,4' $dingdanlists = $this->infengzhuang('fukuanquerenshijian,dingdan,jiesuanprice,shangpinid,dingdanzhuangtai,shangjiabeizhu,dianpuid ', $tablelist['dingdanlist_table'],'dianpuid',$dianpuid,$wheredingdanstr);
如果遇到什么不懂的地方直接关注公众号留言(本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。)
作者:newmiracle
出处:https://www.cnblogs.com/newmiracle/