Thinkphp 查詢條件 and 和 or同時使用即復合查詢


        thinkphp 3.2快捷查詢OR查詢&分割表示AND查詢講解

        快捷查詢方式是一種多字段查詢的簡化寫法,可以進一步簡化查詢條件的寫法,在多個字段之間用|分割表示OR查詢,用&分割表示AND查詢,可以實現下面的查詢,例如:
        一、不同字段相同的查詢條件

            $User = M("User"); // 實例化User對象
            $map['name|title'] = 'thinkphp';
            // 把查詢條件傳入查詢方法
            $User->where($map)->select();

        上面的查詢其實可以等效於

            $User = M("User"); // 實例化User對象
            $map['name'] = 'thinkphp';
            $map['title'] = 'thinkphp';
            $map['_logic'] = 'OR';
            // 把查詢條件傳入查詢方法
            $User->where($map)->select();

        查詢條件就變成 name= 'thinkphp' OR title = 'thinkphp'
        二、不同字段不同的查詢條件

            $User = M("User"); // 實例化User對象
            $map['status&title'] =array('1','thinkphp','_multi'=>true);
            // 把查詢條件傳入查詢方法
            $User->where($map)->select();

        上面的查詢等效於:

            $User = M("User"); // 實例化User對象
            $map['status'] = 1;
            $map['title'] = 'thinkphp';
            // 把查詢條件傳入查詢方法
            $User->where($map)->select();

        '_multi'=>true必須加在數組的最后,表示當前是多條件匹配,這樣查詢條件就變成 status= 1 AND title = 'thinkphp'

        ,查詢字段支持更多的,例如:

            $map['status&score&title'] =array('1',array('gt','0'),'thinkphp','_multi'=>true);

        等效於:

            $map['status'] = 1;
            $map['score'] = array('gt',0);
            $map['title'] = 'thinkphp';

        查詢條件就變成 status= 1 AND score >0 AND title = 'thinkphp'

            注意:快捷查詢方式中“|”和“&”不能同時使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM