
2014-06-26 |&n∞≤↕bsp; 發布者:梁國(guó)芳 &≥∏≥nbsp; | 查Ω₹看(kàn):3320次
Thinkphp上(shàng)面的(de)查詢條件(jiàn)僅僅是∑↓↔§(shì)一(yī)個(gè)簡單的(de)相(xiàng)等 ↓÷判斷,可(kě)以使用(yòng)查詢表♥∏達式支持更多(duō)的(de)SQL查詢語法,也(yě)是(sh≥∑←ì)ThinkPHP查詢語言的(de)精髓,查詢表達式的(de)使用(y$$δòng)格式:
表達式不(bù)分(fēn)大(dà)小(xiǎoλ↕₽δ)寫,支持的(de)查詢表達式有(yǒu)下(xià)面♣>€幾種,分(fēn)别表示的(de)含義是(shì):
| 表達式 | 含義 | 協助記憶 |
|---|---|---|
| EQ | 等于(=) | equal |
| NEQ | 不(bù)等于(<>) | not equal |
| GT | 大(dà)于(>) | greater |
| EGT | 大(dà)于等于(>=) | equal or greater |
| LT | 小(xiǎo)于(<) | less than |
| ELT | 小(xiǎo)于等于(<=) | equal or less than |
| LIKE | 模糊查詢 | |
| [NOT] BETWEEN | (不(bù)在)區(qū)間(jiān)查詢 | |
| [NOT] IN | (不(bù)在)IN 查詢 | |
| EXP | 表達式查詢,支持SQL語法 | expression |
表達式查詢的(de)用(yòng)法示例如(rú)下(≥π₽xià):
例如(rú):
$map['id'] = array('eq',100);
和(hé)下(xià)面的(de)查詢等效
$map['id'] = 100;
表示的(de)查詢條件(jiàn)就(jiù)是(shì) id = 100
例如(rú):
$map['id'] = array('neq',100);
表示的(de)查詢條件(jiàn)就(j¥≠∞iù)是(shì) id <> 100
例如(rú):
$map['id'] = array('gt',100);
表示的(de)查詢條件(jiàn)就(jiù)是(≥§shì) id > 100
例如(rú):
$map['id'] = array('egt',100);
表示的(de)查詢條件(jiàn)就(jiù)是(shì) id >= 100
例如(rú):
$map['id'] = array('lt',100);
表示的(de)查詢條件(jiàn)就(jiù)是(shì)'¥₩↔ id < 100
例如(rú):
$map['id'] = array('elt',100);
表示的(de)查詢條件(jiàn)就(jiù)是(σ♦® shì) id <= 100
例如(rú):
$map['name'] = array('like','thinkphp%');
查詢條件(jiàn)就(jiù)變成 name like 'thinkphp%' 如(rú)果配置了(le)DB_LIKE_FIEL≈≈™♥DS參數(shù)的(de)話(huà),某些 ¥£(xiē)字段也(yě)會(huì)自(zì)動§' 進行(xíng)模糊查詢。例如(rú)設置了(δ©le):
'DB_LIKE_FIELDS'=>'title|content'
的(de)話(huà),使用(yòng)∞•↓
$map['title'] = 'thinkphp';
查詢條件(jiàn)就(jiù)會(huì)變成 title like '%thinkphp%' 支持數(shù)組方式,例如(rú)
$map['a'] =array('like',array('%thinkphp%','%tp'),'OR');$map['b'] =array('notlike',array('%thinkphp%','%tp'),'AND');
生(shēng)成的(de)查詢條件(jiàn)就(jiù)是(shì≠♠§):
(a like '%thinkphp%' OR a like '%tp') AND (b not like '%thinkphp%' AND b not like '%tp')
查詢條件(jiàn)支持字符串或者數(shù)組,例如>÷(rú):
$map['id'] = array('between','1,8');
和(hé)下(xià)面的(de)等效:
$map['id'] = array('between',array('1','8'));
查詢條件(jiàn)就(jiù)變成 id BETWEEN 1 AND 8
查詢條件(jiàn)支持字符串或者數(shù)組,例如(rú):
$map['id'] = array('not in','1,5,8');
和(hé)下(xià)面的(de)等效:
$map['id'] = array('not in',array('1','5','8'));
查詢條件(jiàn)就(jiù)變成 id NOT IN (1,5, 8)
支持更複雜(zá)的(de)查詢情況 例如(rú):
$map['id'] = array('in','1,3,8');
可(kě)以改成:
$map['id'] = array('exp',' IN (1,3,8) ');
exp查詢的(de)條件(jiàn)不(bù)會(huì)被當成σ☆α字符串,所以後面的(de)查詢條件(jiàn)可(kě)以使用(yònδγ≥g)任何SQL支持的(de)語法,包括使用(yòng≥↓ )函數(shù)和(hé)字段名稱。查詢表達式不♥↕™<(bù)僅可(kě)用(yòng)于查詢條件(jiàn),也(y★¶ě)可(kě)以用(yòng)于數(shù)據更新,例如(rú):
$User = M("User"); // 實例化(huà)User對(duì)象// 要(yào)修改的(de)數(shù)據對(duφ♠♥¶ì)象屬性賦值$data['name'] = 'ThinkPHP';$data['score'] = array('exp','score+1');// 用(yòng)戶的(de)積分(fēn)加1$User->where('id=5')->save($data); // 根據條件(jiàn)保存修改的(de)數(shù★σ)據
