1. 程式人生 > >thinkphp中查詢,where條件集合寫法

thinkphp中查詢,where條件集合寫法

1、字串模式查詢(_string)查詢多個“與”條件中巢狀“與”條件

陣列條件可以和字串條件(採用_string 作為查詢條件)混合使用,例如:

  1. $User = M("User");// 例項化User物件
  2. $map['id']= array('neq',1);
  3. $map['name']='ok';
  4. $map['_string']='status=1 AND score>10';
  5. $User->where($map)->select();
結果為:(`id`!=1) AND (`name`='ok') AND ( status=1 AND score>10)

2、請求字串查詢方式(_query)查詢“與”條件中巢狀“或”條件

請求字串查詢是一種類似於URL傳參的方式,可以支援簡單的條件相等判斷。

  1. $map['id']= array('gt','100');
  2. $map['_query']='status=1&score=100&_logic=or';

結果為:`id`>100 AND (`status`='1' OR `score`='100')

3、查詢“或”條件(_logic)

  1. $where['name']= array('like','%thinkphp%');
  2. $where['title']= array('like','%thinkphp%');
  3. $where['_logic']='or';

結果為:( name like

'%thinkphp%') OR ( title like '%thinkphp%')

4、複合查詢(_complex)複合查詢相當於封裝了一個新的查詢條件,然後併入原來的查詢條件之中,所以可以完成比較複雜的查詢條件組裝。 例如:查詢"與"條件和"或"條件相結合

  1. $where['name']= array('like','%thinkphp%');
  2. $where['title']= array('like','%thinkphp%');
  3. $where['_logic']='or';
  4. $map['_complex']= $where;
  5. $map['id']= array('gt',1);
結果為:( id >
1) AND (( name like '%thinkphp%') OR ( title like '%thinkphp%'))

ThinkPHP Where 條件中使用表示式---$map

Where 條件表示式格式為:

$map['欄位名']  = array('表示式', '操作條件');
ThinkPHP運算子 與 SQL運算子 對照表
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
likelike$map<'username'> = array('like','Admin%');username like 'Admin%'
betweenbetween and$map['id'] = array('between','1,8');id BETWEEN 1 AND 8
not betweennot between and$map['id'] = array('not between','1,8');id NOT BETWEEN 1 AND 8
inin$map['id'] = array('in','1,5,8');id in(1,5,8)
not innot 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)
oror$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');