thinkphp中查詢,where條件集合寫法
阿新 • • 發佈:2019-02-04
1、字串模式查詢(_string)查詢多個“與”條件中巢狀“與”條件
陣列條件可以和字串條件(採用_string 作為查詢條件)混合使用,例如:
$User = M("User");// 例項化User物件
$map['id']= array('neq',1);
$map['name']='ok';
$map['_string']='status=1 AND score>10';
$User->where($map)->select();
2、請求字串查詢方式(_query)查詢“與”條件中巢狀“或”條件
請求字串查詢是一種類似於URL傳參的方式,可以支援簡單的條件相等判斷。
$map['id']= array('gt','100');
$map['_query']='status=1&score=100&_logic=or';
結果為:`id`>100 AND (`status`='1' OR `score`='100')
3、查詢“或”條件(_logic)
$where['name']= array('like','%thinkphp%');
$where['title']= array('like','%thinkphp%');
$where['_logic']='or';
結果為:( name like
4、複合查詢(_complex)複合查詢相當於封裝了一個新的查詢條件,然後併入原來的查詢條件之中,所以可以完成比較複雜的查詢條件組裝。 例如:查詢"與"條件和"或"條件相結合
$where['name']= array('like','%thinkphp%');
$where['title']= array('like','%thinkphp%');
$where['_logic']='or';
$map['_complex']= $where;
$map['id']= array('gt',1);
ThinkPHP Where 條件中使用表示式---$map
Where 條件表示式格式為:
$map['欄位名'] = array('表示式', '操作條件');
TP運算子 | SQL運算子 | 例子 | 實際查詢條件 |
---|---|---|---|
eq | = | $map['id'] = array('eq',100); | 等效於:$map['id'] = 100; |
neq | != | $map['id'] = array('neq',100); | id != 100 |
gt | > | $map['id'] = array('gt',100); | id > 100 |
egt | >= | $map['id'] = array('egt',100); | id >= 100 |
lt | < | $map['id'] = array('lt',100); | id < 100 |
elt | <= | $map['id'] = array('elt',100); | id <= 100 |
like | like | $map<'username'> = array('like','Admin%'); | username like 'Admin%' |
between | between and | $map['id'] = array('between','1,8'); | id BETWEEN 1 AND 8 |
not between | not between and | $map['id'] = array('not between','1,8'); | id NOT BETWEEN 1 AND 8 |
in | in | $map['id'] = array('in','1,5,8'); | id in(1,5,8) |
not in | not in | $map['id'] = array('not in','1,5,8'); | id not in(1,5,8) |
and(預設) | and | $map['id'] = array(array('gt',1),array('lt',10)); | (id > 1) AND (id < 10) |
or | or | $map['id'] = array(array('gt',3),array('lt',10), 'or'); | (id > 3) OR (id < 10) |
xor(異或) | xor | 兩個輸入中只有一個是true時,結果為true,否則為false,例子略。 | 1 xor 1 = 0 |
exp | 綜合表示式 | $map['id'] = array('exp','in(1,3,8)'); | $map['id'] = array('in','1,3,8'); |