說明
在日常開發中,經常會需要寫多條件的數據庫查詢語句。在使用框架的情況下,單純使用原生sql查詢會導致結果與model無法對應,也就沒有辦法使用框架的一些便利的方法對結果集進行處理。尤其是laravel提供了非常多的對查詢結果集進行處理的工具。所以最好是使用laravel提供的ORM進行多條件的數據庫查詢。
問題
比如需要執行這樣一條sql語句
select
*
from
homework
where
(id between 1 and 10 or id between 50 and 70)
and complete = 1
and (title like 'a%' or title like 'b%');
解決方式
$homeworks = Homework::where(function ($query) {
$query->whereBetween('id', [1, 10])
->orWhereBetween('id', [50, 70]);
})->where('complete', 1)
->where(function ($query) {
$query->where('title', 'like', 'a%')
->orWhere('title', 'like', 'b%');
})->get();
總結
使用ORM查詢數據可以得到model數據集,能更方便的處理數據。
laravel的where方法使用閉包可以有效的構建嵌套的where子句(在這里,使用where的閉包相當于在構建sql的時候加一個括號
以上這篇laravel多條件查詢方法(and,or嵌套查詢)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Laravel5中實現模糊匹配加多條件查詢功能的方法
- Laravel使用模型實現like模糊查詢的例子