您好,登錄后才能下訂單哦!
怎么在thinkphp3.2框架中使用where條件查詢語句?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
thinkphp3.2 where 條件查詢
在連貫操作中條件where的操作有時候自己很暈,所以整理下,有助于使用
查詢條件
支持的表達式查詢,tp不區分大小寫
含義 | TP運算符 | SQL運算符 | 例子 | 實際查詢條件 |
---|---|---|---|---|
等于 | 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% |
在范圍內包括倆端值 | between | 0<=id<=10 | $where['id'] = array('between',array('0','10')) | where id between 0 and 10 |
不在范圍內 | 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 | 表達式查詢,支持SQL語法 |
exp 是表達式的意思,如果你覺得對于一個值限制條件太多的話就可以用這個
$where['id'] = array('exp','in ( select id from id from tableb)');
復查的查詢語句
有的時候,我們希望通過一次的查詢就能解決問題,這個時候查詢條件往往比較復雜,但是卻比多次查詢庫來的高效。
實在是搞不定的話就直接用
$where['_string'] = 'xxxx'
, 這個代表查詢的時候拼接上 xxx 條件,一次性解決問題
$where['_string'] = 'left join A on A.id = b.id where a.id not in (select id from C)';
1. 區間查詢(一個值得多種情況)
默認是 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. 復合查詢
相當于封裝了新的查詢條件在里面
$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)
根據需求,靈活使用(無限套下去)
3. sql 查詢
如果有設置了讀寫分離的話 query
是查詢 execute
是更新保存
M()->query('select * from a'); M()->execute('update a set counts = 3 where id = 1103')
4. 獲取要執行的sql 語句
有的時候條件太復雜,比如
id in(xxxxx)
,這個xxx就是通過一系列操作獲得的結果,嫌麻煩的就直接 都扔進去,寫sql 又長,就直接獲取sql語句扔進去
1.fetchsql
2.buildsql
3.select(false)
M('user')->fetchsql(true)->select(); M('user')->buildsql(); M('user')->select(false);
看完上述內容,你們掌握怎么在thinkphp3.2框架中使用where條件查詢語句的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。