Laravel では、複雑なクエリ条件を構築することが非常に一般的な要件です。同時に複数の条件を満たすデータをクエリする必要がある場合、特定のフィールドの最大値または最小値をクエリする必要がある場合、特定の条件を満たさないデータをクエリする必要がある場合などがあります。この記事では、Laravel のクエリ ビルダーを使用してこれらの要件を達成する方法を紹介します。
まず、Laravel の基本的なクエリ構文を見てみましょう。 Laravel では、DB ファサードの table() メソッドを使用してクエリするテーブルを指定し、select() メソッドを使用してクエリする必要があるフィールドを指定できます。
たとえば、次のコードは、users テーブル内のすべてのレコードをクエリし、その ID フィールドと名前フィールドを返します。
DB::table('users')->select('id', 'name')->get();
where() メソッドを使用してクエリ条件を指定することもできます。たとえば、次のコードは、users テーブル内の 18 より古いレコードをクエリします。
DB::table('users')->where('age', '>', 18)->get();
複数の条件を満たす必要がある場合同時に、where () メソッドを使用してクエリ条件を組み合わせることができます。
たとえば、次のコードは、18 歳以上で男性の両方のレコードについて users テーブルをクエリします。
DB::table('users')->where('age', '>', 18)->where('gender', 'male')->get();
orWhere() メソッドを使用して、いずれかのレコードを指定することもできます。条件は満たしています。
たとえば、次のコードは、users テーブル内の 18 歳以上または性別が男性のレコードをクエリします。
DB::table('users')->where('age', '>', 18)->orWhere('gender', 'male')->get();
複数の条件の組み合わせが必要な場合は、次のように使用できます。それを達成するためのクロージャ。
たとえば、次のコードは、users テーブルにクエリを実行して、年齢が 18 歳以上で性別が男性、または年齢が 18 歳以上で性別が女性という要件を満たすレコードを探します。 ##ファジー クエリ
DB::table('users')->where(function($query) { $query->where('age', '>', 18) ->where('gender', 'male'); })->orWhere(function($query) { $query->where('age', '=', 18) ->where('gender', 'female'); })->get();
最大値と最小値のクエリ
DB::table('users')->where('name', 'like', 'J%')->get();
in and not in query
$maxAge = DB::table('users')->max('age'); $minAge = DB::table('users')->min('age');
DB::table('users')->where('gender', '<>', 'male')->get();
以上がLaravelで複雑なクエリ条件を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。