這篇文章主要介紹了thinkPHP的表達式查詢用法,結合實例形式分析了thinkPHP表達式查詢的格式及相關運算符用法,需要的朋友可以參考下
本文實例講述了thinkPHP的表達式查詢。分享給大家供大家參考,具體如下:
ThinkPHP 表達式
這裡說的表達式,是指 ThinkPHP 框架中特有的表達式。這些表達式用於查詢或更新刪除等操作的 where條件 及模板標籤中。
Where 條件中使用表達式
Where 條件表達式格式為:
$map['字段名稱'] = array ('表達式', '操作條件');
其中$map 是一個普通的數組變量,可以根據自己需求而命名。上述格式中的表達式實際上是運算子的意義:
TP運算子 | SQL運算子 | ||
---|---|---|---|
實際查詢條件 | eq | ||
偶數 | != | $map['id'] = array('偶數',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 | |
elt | #$map['id'] = array('elt',100); | #id | |
like | like | $map['使用者名稱'] = array('like','Admin % '); | 用戶名如'Admin%' |
之間 | 和之間 | $map['id'] = array(' Between','1,8'); | id BETWEEN 1 AND 8 |
不在之間 | 不在與之間 | $map['id'] = array('不在之間','1, 8'); | id 不在1 和8 之間 |
in | $map['id'] = array('in','1,5,8'); | idin(1,5,8) | |
不在 | 不在 | $map['id'] = array('不在','1,5,8'); | id不存在(1,5,8) |
and(預設) | and | $map['id'] = array (數組('gt',1),陣列('lt',10)); | (id > 1) AND (id |
or | or | $map['id'] = array(array('gt',3),array('lt',10), 'or'); | (id > 3)或(id |
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'); |
補充說明
同SQL 一樣,ThinkPHP運算子不區分大小寫,eq 與EQ 一樣。
between、 in 條件支援字串或數組,即下面兩種寫法是等效的:
$map['id'] = array('not in','1,5,8'); $map['id'] = array('not in',array('1','5','8'));
exp 表達式
上表中的exp 不是運算符,而是一個綜合表達式以支援更複雜的條件設定。 exp 的操作條件不會被當成字串,可以使用任何 SQL 支援的語法,包括使用函數和欄位名稱。
exp 不僅用於where 條件,也可以用於資料更新,如:
$Dao = M("Article"); // 构建 save 的数据数组,文章点击数+1 $data['aid'] = 10; $data['counter'] = array('exp','counter+1'); // 根据条件保存修改的数据 $User->save($data);
註:對於數字欄位的加減,可以直接讓
以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!
相關建議:
以上是thinkPHP中查詢表達式的用法的詳細內容。更多資訊請關注PHP中文網其他相關文章!