この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:2
ページ更新者:T
更新日時:2019-04-07 13:10:08

タイトル: where句の入れ子(ネスト)
SEOタイトル: 【Laravel】where句の入れ子(ネスト)

この記事の要点
  • Laravel クエリビルダでWHERE 句のネスト(括弧でグループ化)
  • 書式: ->where(function($q) { $q->where('colA', 'val1')->orWhere('colB', 'val1'); })->where('colC', 'val2')
  • 生成 SQL: WHERE (colA = 'val1' OR colB = 'val1') AND colC = 'val2'
  • 優先順位を間違えると意図と違う結果になるので必ずクロージャでネスト

 

素のSQL

SELECT * FROM article

WHERE (colA = 'val1' OR colB = 'val1') AND colC = 'val2'

 

クエリビルダ版

Article::where(function ($query) {

        $query->where('colA', 'val1')

            ->orWhere('colB', 'val1');

        })

        ->where('colC', 'val2')

        ->get();