MySql教程

mysql 临时表代替in的方法

本文主要是介绍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);

 

这篇关于mysql 临时表代替in的方法的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!