【Laravel】where句の基本的な使い方まとめ

こんにちは!CODE CLUB965のKです!

今回は、LaravelでDBからデータを取得する際によく使うwhereについてその使い方を書こうと思います。

前回、よく使う超基本的なクエリビルダのまとめ記事を書きましたが、where条件については触れていませんでした。

なので、今回はwhereの色々な使い方のパターンをまとめておこうと思います。

前回の記事はこちらです。

まずは基本的な使い方

まずは基本形となる使い方です。

$data = User::where('name', 'taro')->first();

これはUserテーブルのnameカラムが「taro」に該当する最初のレコードを取得します。

ここからAnd条件やOr条件などに派生していく感じなので、この形は覚えておく方が理解が進むと思います。

以下ざっくり書いていきます。

A and B

and条件の場合は、whereを連続して使えばOKです。

// Userテーブルのnameカラムが「taro」でかつ、ageカラムが「28」の最初のレコードを取得する
$user = User::where('name', 'taro')->where('age', 28)->first();

A or B

or条件の場合は「orWhere」を使いましょう。

// Userテーブルのnameカラムが「taro」のレコードもしくは、ageカラムが「28」の最初のレコードを取得する
$user = User::where('name', 'taro')
        ->orWhere('age', 28)
        ->first();

(A and B) or C

これは例えば、Userテーブルのnameカラムが「taro」かつageカラムが「28」のレコードか、nameカラムが「jiro」の最初のレコードを取得する場合のような時に以下のように記述します。

$user = User::where('name', 'taro')
        ->where('age', 28)
        ->orWhere('name', 'jiro')
        ->first();

A and (B or C)

これは例えば、Userテーブルのnameカラムが「taro」で、かつageカラムが「28」もしくは「30」の最初のレコードを取得する場合のような時に以下のように記述します。

$user = User::where('name', 'taro')
        ->where(function($query) {
        $query->where('age', 28)
              ->orwhere('age', 30)
        })
        ->first();

パターンとしては他にもありますが、上記のパターンの組み合わせだと思うので、必要に応じて参考にして下さい。

ちなみに、変数を使用したい場合は以下のように記述します。

$user = User::where('name', 'taro')
        ->where(function($query)use($data) {
        $query->where('age', '$data1->age')
              ->orwhere('data', '$data2->age')
          })
        ->first();

慣れればどうということはないのですが、最初は混乱するかもしれないので記事を参考にしながら慣れていきましょう!

それでは、また!

Follow me!

【Laravel】where句の基本的な使い方まとめ” に対して1件のコメントがあります。

コメントは受け付けていません。