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);