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

2021-08-20 02:24:26 字數 3536 閱讀 2826

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

();

結果為:

(`id`!=1

)and

(`name`

='ok'

)and

(status=1

and score

>10)

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

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

$map

['id']=

array

('gt'

,'100'

);

$map

['_query']=

'status=1&score=100&_logic=or'

;

結果為:

`id`

>

100and

(`status`

='1'

or `score`

='100'

)3、查詢「或」條件(_logic)

$where

['name']=

array

('like'

,'%thinkphp%'

);

$where

['title']=

array

('like'

,'%thinkphp%'

);

$where

['_logic']=

'or'

;

結果為:(

name like

'%thinkphp%'

)or

(title like

'%thinkphp%'

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

查詢"與"條件和"或"條件相結合

$where

['name']=

array

('like'

,'%thinkphp%'

);

$where

['title']=

array

('like'

,'%thinkphp%'

);

$where

['_logic']=

'or'

;

$map

['_complex']=

$where

;

$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

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,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');

Sql語句查詢當天本週本月記錄的where條件

查詢當天 select from info where datediff dd,datetime,getdate 0 查詢24小時內的 select from info where datediff hh,datetime,getdate 24 info為表名,datetime為資料庫中的字段值 查...

ThinkPHP中關聯查詢例項

在thinkphp中關聯查詢 多表程式設計客棧查詢 可以使用 table 方法或和join方法,如下示例所示 1 table 複製 如下 list user table user status stats,user profile profile where stats.id profile.typ...

SQL中join操作後面的on與where的區別

join關鍵字的作用是將多個表按一定的條件聯合起來,從而可以實現從多個表中獲取資料 在join後面可以接on條件和where條件,在這裡我主要就是說這兩者之間的差別 建立兩張簡單的用來測試的表並新增資料,如下所示,一張表名為id name,另一張表名為id age 首先看看不新增條件 t2.age ...