thinkphp3.2框架中where條件查詢用法總結(jié)
本文實(shí)例講述了thinkphp3.2框架中where條件查詢用法。分享給大家供大家參考,具體如下:
thinkphp3.2 where 條件查詢
在連貫操作中條件where的操作有時(shí)候自己很暈,所以整理下,有助于使用
查詢條件
支持的表達(dá)式查詢,tp不區(qū)分大小寫(xiě)
含義 | TP運(yùn)算符 | SQL運(yùn)算符 | 例子 | 實(shí)際查詢條件 |
---|---|---|---|---|
等于 | EQ | = | $where['id'] = array('EQ','1') | id = 2 |
不等于 | NEQ | != | $where['id'] = array('NEQ','1') | id!=2 |
大于 | GT | > | $where['id'] = array('GT','1') | id >1 |
大于等于 | EGT | EGT | $where['id'] = array('EGT','1') | id>=1 |
小于 | < | < | $where['id'] = array('lt',1) | id < 1 |
小于等于 | <= | <= | $where['id'] = array('elt',1) | id<=1 |
匹配 | like | like | where[′id′]=array(′like′,′where[′id′]=array(′like′,′where['id'] = array('like','begin%') $where['id'] = array('like','%begin%') |
where id like '%begin' where id like 'begin%' where id like'%begin% |
在范圍內(nèi)包括倆端值 | between | 0<=id<=10 | $where['id'] = array('between',array('0','10')) | where id between 0 and 10 |
不在范圍內(nèi) | not between | 0 >id and 1o < id | $where['id'] = array('not between',array('0','10')) | where id not between 0 and 10 |
在枚舉的值中 | in | in | $where['id'] = array('in',array('1','2','5')) | where id in ('1','2','3') |
不在枚舉值中 | not in | not in | $where['id'] = array('not in',array('1','2',5)) | where id not in ('1','2','5') |
exp | 表達(dá)式查詢,支持SQL語(yǔ)法 |
exp 是表達(dá)式的意思,如果你覺(jué)得對(duì)于一個(gè)值限制條件太多的話就可以用這個(gè)
$where['id'] = array('exp','in ( select id from id from tableb)');
復(fù)查的查詢語(yǔ)句
有的時(shí)候,我們希望通過(guò)一次的查詢就能解決問(wèn)題,這個(gè)時(shí)候查詢條件往往比較復(fù)雜,但是卻比多次查詢庫(kù)來(lái)的高效。
實(shí)在是搞不定的話就直接用
$where['_string'] = 'xxxx'
, 這個(gè)代表查詢的時(shí)候拼接上 xxx 條件,一次性解決問(wèn)題
$where['_string'] = 'left join A on A.id = b.id where a.id not in (select id from C)';
1. 區(qū)間查詢(一個(gè)值得多種情況)
默認(rèn)是 and
$where['id'] =array(array('neq','8'),array('elt','200'),'and'); // 小于等于200 不等于 8 $where['id'] = array(array('neq','8'),'array('neq','10')','or'); // 不等于8或者不等于10
2. 復(fù)合查詢
相當(dāng)于封裝了新的查詢條件在里面
$where['a'] = 5; $where['b'] = 6; $where['_logic'] = 'or';
sql:where a = 5 or b = 6;
$condition['c'] = '3'; $condition['d'] = '4' $condition['_logic'] = 'or' $where['a'] = 9; $where['_complex'] = $condition;
sql: where a=9 and (c = 3 or d = 4)
根據(jù)需求,靈活使用(無(wú)限套下去)
3. sql 查詢
如果有設(shè)置了讀寫(xiě)分離的話 query
是查詢 execute
是更新保存
M()->query('select * from a'); M()->execute('update a set counts = 3 where id = 1103')
4. 獲取要執(zhí)行的sql 語(yǔ)句
有的時(shí)候條件太復(fù)雜,比如
id in(xxxxx)
,這個(gè)xxx就是通過(guò)一系列操作獲得的結(jié)果,嫌麻煩的就直接 都扔進(jìn)去,寫(xiě)sql 又長(zhǎng),就直接獲取sql語(yǔ)句扔進(jìn)去
1.fetchsql
2.buildsql
3.select(false)
M('user')->fetchsql(true)->select(); M('user')->buildsql(); M('user')->select(false);
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《ThinkPHP入門(mén)教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門(mén)教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門(mén)教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。
- thinkphp3.2實(shí)現(xiàn)跨控制器調(diào)用其他模塊的方法
- thinkphp3.2.3版本的數(shù)據(jù)庫(kù)增刪改查實(shí)現(xiàn)代碼
- ThinkPHP3.2.2實(shí)現(xiàn)持久登錄(記住我)功能的方法
- Thinkphp3.2.3整合phpqrcode生成帶logo的二維碼
- thinkPHP3.2簡(jiǎn)單實(shí)現(xiàn)文件上傳的方法
- ThinkPHP3.1之D方法實(shí)例詳解
- ThinkPHP3.2.3框架實(shí)現(xiàn)執(zhí)行原生SQL語(yǔ)句的方法示例
- ThinkPHP3.2.3所有的單字母方法整理總結(jié)
相關(guān)文章
PHP隨手筆記整理之PHP腳本和JAVA連接mysql數(shù)據(jù)庫(kù)
這篇文章主要介紹了PHP隨手筆記整理之PHP腳本和JAVA連接mysql數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2015-11-11PHP實(shí)現(xiàn)PDF轉(zhuǎn)圖片的詳細(xì)過(guò)程(使用imagick)
最近有一份pdf文件,需要將其轉(zhuǎn)換成圖片,所以這篇文章主要給大家介紹了關(guān)于PHP實(shí)現(xiàn)PDF轉(zhuǎn)圖片的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-01-01Laravel 4.2 中隊(duì)列服務(wù)(queue)使用感受
Laravel的隊(duì)列組件為許多隊(duì)列服務(wù)提供了統(tǒng)一的API接口。隊(duì)列服務(wù)讓你可以異步處理一個(gè)耗時(shí)任務(wù),比如延遲發(fā)送一封郵件,從而大大加快了應(yīng)用的Web請(qǐng)求處理速度。2014-10-10PHP把JPEG圖片轉(zhuǎn)換成Progressive JPEG的方法
這篇文章主要介紹了PHP把JPEG圖片轉(zhuǎn)換成Progressive JPEG的方法,本文同時(shí)講解了Baseline JPEG和Progressive JPEG的區(qū)別和它們的優(yōu)劣,需要的朋友可以參考下2014-06-06Laravel 讀取 config 下的數(shù)據(jù)方法
今天小編就為大家分享一篇Laravel 讀取 config 下的數(shù)據(jù)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10