ホームページ >バックエンド開発 >PHPチュートリアル >複数の WHERE 句を使用した Laravel 雄弁なクエリを効率的に構築するにはどうすればよいですか?

複数の WHERE 句を使用した Laravel 雄弁なクエリを効率的に構築するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-20 00:37:10453ブラウズ

How Can I Efficiently Build Laravel Eloquent Queries with Multiple WHERE Clauses?

Laravel Eloquent を使用した複数の WHERE 句を含むクエリの構築

次のシナリオを考えてみましょう: Laravel の Eloquent クエリ ビルダーを利用しており、異なる条件を対象とする複数の WHERE 句を含むクエリ。複数の where メソッド呼び出しを使用してこれを行うことは可能ですが、このアプローチは繰り返しが多く扱いにくくなる可能性があります。

これに対処するために、Laravel では、そのようなクエリをよりエレガントに構築するための代替オプションがいくつか提供されています。

Where

で条件の配列を使用する Laravel 時点5.3 では、where メソッドに渡される配列で複数の条件を指定できます。

$query->where([
    ['column_1', '=', 'value_1'],
    ['column_2', '<>', 'value_2'],
    // ...
]);

where で配列を使用する

Laravel 5.3 より前では、以下を使用することもできました。条件を指定する配列 where:

$matchThese = ['field' => 'value', 'another_field' => 'another_value', ...];
$results = User::where($matchThese)->get();

を使用するorWhere

または、orWhere を使用して条件をグループ化できます。

$results = User::where($matchThese)
    ->orWhere($orThose)
    ->get();

結果の SQL クエリ

orWhere メソッドを使用すると、次のようなクエリthis:

SELECT * FROM users
WHERE (field = value AND another_field = another_value AND ...)
OR (yet_another_field = yet_another_value AND ...)

これらの手法を使用すると、より簡潔で保守しやすい方法で複数の WHERE 句を含むクエリを構築できます。

以上が複数の WHERE 句を使用した Laravel 雄弁なクエリを効率的に構築するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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