thinkPHP的表示式查詢用法詳解

2022-10-06 09:00:10 字數 2200 閱讀 6219

thinkphp 表示式

這裡說的表示式,是指 thinkphp 框架中特有的表示式。這些表示式用於查詢或更新刪除等操作的 where條件 及模板標籤中。

where 條件中使用表示式

where 條件表示式格式為:

$map['欄位名']  = array('表示式', '操作條件');

其中 $map 是乙個普通的陣列變數,可以根據自己需求而命名。上述格式中的表示式實際是運算子的意義:

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

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

inin

$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,www.cppcns.com5,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,否則為f例子略。

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'] = arr程式設計客棧ay('www.cppcns.comnot in','1,5,8');

$map['id'] = array('not in',array('1','5','8'));

exp 表示式

上表中的 exp 不是乙個運算子,而是乙個綜合www.cppcns.com表示式以支援更複雜的條件設定。exp 的操作條件不會被當成字串,可以使用任何 sql 支援的語法,包括使用函式和欄位名稱。

exp 不僅用於 where 條件,也可以用於資料更新,如:

$dao = m("article");

// 構建 s**e 的資料陣列,文章點選數+1

$data['aid'] = 10;

$data['counter'] = array('exp','counter+1');

// 根據條件儲存修改的資料

$user->s**e($data);

注:對於數字欄位的加減,可以直接使

查詢表示式

這個特性使得你可以在c 中使用sql類似風格的語句,也被稱作linq 語言整合查詢 舉例來說,你可以這樣描述你的資料 ublic class coordinate 在c 裡,你可以像下面一樣輕鬆的宣告乙個資料庫表的邏輯等同式 use object and collection initializer...

查詢表示式

版本 新增功能 5.0.9 比較運算增加閉包子查詢支援 5.0.4 支援對同乙個字段多次呼叫查詢方法 查詢表示式支援大部分的sql查詢語法,也是 thinkphp 查詢語言的精髓,查詢表示式的使用格式 where 欄位名 表示式 查詢條件 where or 欄位名 表示式 查詢條件 表示式不分大小寫...

查詢表示式解析

查詢表示式解析 1 ienumerablequery from s in names where s.length 5 orderby s select s.toupper 在語義上等同於如下 方法風格 基於方法 的查詢 ienumerablequery names where s s.length...