where = '1=1' 有什么作用?


 

 

下面代码首先定义$where= '1=1',后面就可以不用去判断是否存在$where;简化了判断流程;

1=1 是永恒成立的,意思无条件的成立,也就是说SQL语句中有没有这个1=1都可以。

这个1=1常用于应用程序根据用户选择项的不同拼凑where条件时用的。

 

如果不写1=1,那么在每一个不为空的查询条件面前,都必须判断有没有where字句,哪里该加where,哪里该加and/or

用上 where 1=1 之后,就不存在这样的问题, 条件是 and 就直接and ,是or就直接接 or

 

public function index()
    {
        $where = '1=1';
        $searchArr = [];//记录搜索状态
        if($this->request->isGet()){
            $searchArr = $this->request->param();
            unset($searchArr['page']);
            foreach ($searchArr as $k=>$v) {
                if($v != '' || $v != 0){
                    if($k == 'name'){
                        $where .= " and a.`{$k}` like '%{$v}%'";
                    }else if ($k== 'role_name'){
                        $where .= " and r.`name` like '%{$v}%'";
                    }else{
                        $where .= " and a.`{$k}` = '{$v}'";
                    }
                }
            }
        }
}

 

文章来源:刘俊涛的博客欢迎关注公众号、留言、评论,一起学习。

__________________________________________________________________________________

若有帮助到您,欢迎点击推荐,您的支持是对我坚持最好的肯定(*^_^*)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM