不同的業(yè)務(wù)場(chǎng)景,會(huì)需要不同的數(shù)據(jù)內(nèi)容,在使用tp5框架進(jìn)行開發(fā)生產(chǎn)的時(shí)候,會(huì)面臨各種各樣的數(shù)據(jù)組合,在我們使用內(nèi)置的數(shù)據(jù)庫查詢類進(jìn)行編寫查詢語句的時(shí)候,有很多不常用的查詢鏈?zhǔn)讲僮鞑恢涝趺磳懀裉炀秃?jiǎn)單的記錄一下
首先就是最常用的基本鏈?zhǔn)讲樵?/p>
在TP5中,鏈?zhǔn)讲樵兪且环N常用的查詢方式,它允許你在一個(gè)查詢中連續(xù)使用多個(gè)查詢方法。以下是TP5中鏈?zhǔn)讲樵兊某S梅绞剑?/p>
使用where方法進(jìn)行條件篩選:
$result = Db::table('table_name')
->where('column1', '=', $value1)
->where('column2', '=', $value2)
->select();
這里是針對(duì)固定的查詢提交進(jìn)行查詢,但是常常有很多的查詢條件是根據(jù)前臺(tái)的傳參來制定查詢條件的,這里的話就沒有辦法這樣寫where條件了, 所以我們這里會(huì)用到制定條件數(shù)組$where來進(jìn)行復(fù)雜的查詢操作
我們可以使用數(shù)組方式批量設(shè)置查詢條件
$where = [
['column1', '=', $value1],
['column2', '=', $value2]
];
$result = Db::table('table_name')
->where($where)
->select();
在這個(gè)例子中,$where 是一個(gè)包含多個(gè)查詢條件的數(shù)組。每個(gè)條件是一個(gè)包含三個(gè)元素的數(shù)組,第一個(gè)元素是列名,第二個(gè)元素是比較運(yùn)算符,第三個(gè)元素是比較值。然后,通過 where 方法將這個(gè)數(shù)組作為查詢條件傳入查詢中。
還有一些特殊操作,例如批量查詢條件中篩選是null的或者不是null的,這種特殊的查詢寫起來就更加的復(fù)雜一些,我們通過exp來實(shí)現(xiàn)is null的查詢條件
$where['field_name'] = array('exp','is null');
通過這種寫法就可以組合查詢其他的條件來獲取我們需要的查詢結(jié)果