关于mysql多重组合查询的一点技巧总结

今天项目遇到了一个很有意思的问题:

就是一个搜索框,我们有6个搜索项目,

然后需要实现1个查询,2个查询,3个。。。一直到6个查询为止


开始我直接一眼的思路就是用N多的if()


<?php
 $info = $_POST;
 if(isset($info['xxx'])){
   $sql = "select * from tablename where xxxx";
}else if(isset($info['xxxx'])){

} 
......
?>

这大概要写6*5*4*3*2*1个if()


然后找了一下资料,发现可以这么写


<?php
        $info = I('post.');
        //根据条件写判断
        $sql = "select * from ordertable where 1=1";
        if($info['warehouse']){
            $sql = $sql." and MarketId = ".$info['warehouse'];
        }
        if($info['Createtime']){
             $sql = $sql." and Createtime = ".$info['Createtime'];
        }
        if($info['Paytime']){
             $sql = $sql." and Paytime = ".$info['Paytime'];
        }
        if($info['Paystatus']){
             $sql = $sql." and Paystatus = ".$info['Paystatus'];
        }
        if($info['orderNum']){
             $sql = $sql." and orderNum = ".$info['orderNum'];
        }
        if($info['Product']){
             $sql = $sql." and Product = ".$info['Product'];
        }
?>


你可能感兴趣的:(关于mysql多重组合查询的一点技巧总结)