Laravel

【Laravel9/ORM】ORM whereで色々検索パターン(whereBetween/whereRaw/whereNotIn/WhereNotNull)

クエリビルダー where

LaravelのORMであるEloquent ORMでは、データベースからデータを取得する際にwhereメソッドを使用することができます。

whereメソッドを使用することで、複数の条件を指定してデータを絞り込むことができます。

この記事では、whereメソッドに加えて、whereBetweenwhereRawなどいくつかのwhereメソッドについて解説します。

  1. where

where

whereメソッドは、指定されたカラムに対して条件を指定して、レコードを取得するために使用されます。

whereメソッドには、2つの引数が含まれます。

最初の引数は、カラム名であり、2番目の引数は、条件を表す値です。例えば、次のように使用することができます。

$users = User::where('name', 'John')->get();

上記の例では、usersテーブルからnameがJohnのレコードを取得しています。

where

whereBetween

whereBetweenメソッドは、指定されたカラムの値が、指定された範囲内にある場合に、

クエリを実行する場合に使用されます。

whereBetweenメソッドには、3つの引数が含まれます。最初の引数は、カラム名であり、

2番目と3番目の引数は、範囲を表す値です。

例えば、次のように使用することができます。

$users = User::whereBetween('age', [18, 30])->get();

上記の例では、usersテーブルからageが18から30の間のレコードを取得しています。

whereRaw

whereRawメソッドは、任意のSQLクエリを実行するために使用されます。

whereRawメソッドには、SQLクエリを文字列で渡すことができます。

例えば、次のように使用することができます。

$users = User::whereRaw('age > ?', [18])->get();

上記の例では、usersテーブルからageが18よりも大きいレコードを取得しています。

whereIn

whereInメソッドは、指定されたカラムの値が、

指定された配列の値のいずれかに含まれる場合に、クエリを実行する場合に使用されます。

whereInメソッドには、カラム名と値の配列が含まれます。

例えば、次のように使用することができます。

$users = User::whereIn('id', [1, 2, 3])->get();

上記の例では、usersテーブルからidが1、2、3のいずれかのレコードを取得しています。

where

whereNotInメソッドは、指定されたカラムの値が、

指定された配列の値のいずれにも含まれない場合に、クエリを実行する場合に使用されます。

whereNotInメソッドには、カラム名と値の配列が含まれます。

例えば、次のように使用することができます。

$users = User::whereNotIn('id', [1, 2, 3])->get();

上記の例では、usersテーブルからidが1、2、3のいずれでもないレコードを取得しています。

whereNull

whereNullメソッドは、指定されたカラムがnullであるレコードを取得するために使用されます。

whereNullメソッドには、カラム名が含まれます。例えば、次のように使用することができます。

$users = User::whereNull('email')->get();

上記の例では、usersテーブルからemailがnullのレコードを取得しています。

whereNotNull

whereNotNullメソッドは、指定されたカラムがnullでないレコードを取得するために使用されます。

whereNotNullメソッドには、カラム名が含まれます。

例えば、次のように使用することができます。

$users = User::whereNotNull('email')->get();

上記の例では、usersテーブルからemailがnullでないレコードを取得しています。

まとめ

whereにはこれ以外にも様々なメソッドがありますので、

必要に応じてそれぞれを適切に使用して、効率的なクエリを実行してください。

-Laravel