クエリビルダー where
LaravelのORMであるEloquent ORMでは、データベースからデータを取得する際にwhereメソッドを使用することができます。
whereメソッドを使用することで、複数の条件を指定してデータを絞り込むことができます。
この記事では、whereメソッドに加えて、whereBetween、whereRawなどいくつかのwhereメソッドについて解説します。
- 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にはこれ以外にも様々なメソッドがありますので、
必要に応じてそれぞれを適切に使用して、効率的なクエリを実行してください。