更多的情況下我們都是查詢某些字段,但有些情況下面我們需要通過字段排除來更方便的查詢字段,例如文章詳細頁,
我們可能只需要排除status和update_time字段,這樣就不需要寫一堆的字段名稱了(有些人可能覺得為什么不用“*”查詢全部字段呢,不是更方便嗎,但是有一點不可否認,即使列出所有字段也比查詢所有字段的效率要高哦^_^),
而新版的Model類的field方法可以支持排除(NOT)機制, 舉個例子,例如我們有一個article表,定義了有id,name,title,status,create_time,read_count,comment_count字段,當使用普通的字段查詢
$Model->field('id,name')->select();
這是我們比較常用的查詢字段方式,表示查詢id,name字段 。
生成的SQL語句應該是SELECT id,name FROM article
當使用下面的字段排除方式查詢的時候
$Model->field('create_time,read_count,comment_count',true);
第二個參數表示field方法采用的是排除機制,因此實際查詢的字段是除create_time,read_count,comment_count之外的其他數據表所有字段,最終要查詢的字段根據實際的數據表字段有所不同。
生成的SQL語句就變成了SELECT id,name,title,status FROM article