ホームページ >バックエンド開発 >PHPチュートリアル >Laravel Eloquentで複数のOR条件とAND条件を含む複雑なクエリを構築する方法?

Laravel Eloquentで複数のOR条件とAND条件を含む複雑なクエリを構築する方法?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-27 01:18:11824ブラウズ

How to Construct Complex Queries with Multiple OR and AND Conditions in Laravel Eloquent?

Laravel Eloquent での複数の OR および AND 条件を使用したクエリ

Laravel Eloquent では、複数の OR および AND 条件を含む複雑なクエリを構築するには、慎重に検討してください。

クエリOR と AND

Eloquent を使用して次の SQL ステートメントを表すには:

WHERE (a = 1 OR b =1 ) AND (c = 1 OR d = 1)

Laravel 7.x/4.2 で導入された論理グループ化を利用します:

Model::where(function ($query) {
    $query->where('a', '=', 1)
          ->orWhere('b', '=', 1);
})
->where(function ($query) {
    $query->where('c', '=', 1)
          ->orWhere('d', '=', 1);
});

この例では、クエリは 2 つの別々の論理グループを結合し、各グループはそれぞれのセットに OR 条件を適用します。列。これらの論理グループは、AND 条件を使用して結合されます。

複雑なクエリに生の SQL を使用する

さらに複雑なクエリの場合は、生の SQL の使用が必要になる場合があります。これは DB::raw() メソッドを使用して実行できます。たとえば、生の SQL を使用して上記と同じクエリを実行するには:

$query = "SELECT * FROM table_name WHERE (a = 1 OR b = 1) AND (c = 1 OR d = 1)";
$results = DB::select(DB::raw($query));

生の SQL を使用すると Eloquent のクエリ ビルダー保護をバイパスする可能性があり、潜在的なセキュリティ脆弱性につながる可能性があるため、慎重に使用する必要があることに留意してください。 .

以上がLaravel Eloquentで複数のOR条件とAND条件を含む複雑なクエリを構築する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。