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