Laravel 5のEloquent ORMでLIKEを使用して大文字と小文字を区別しない検索を実行するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-10-25 07:13:28
オリジナル
273 人が閲覧しました

How to Perform Case-Insensitive Searches with LIKE in Laravel 5's Eloquent ORM?

Laravel-5 'LIKE' 同等 (Eloquent)

Laravel 5 の Eloquent ORM を使用してデータベースレコードを検索する場合、Where メソッドを LIKE 演算子とともに使用して、大文字と小文字を区別しない比較を実行します。ただし、Laravel のこの演算子の構文は、標準の SQL LIKE 構文とは異なります。

質問:

開発者は、Laravel 5 の Eloquent を使用して次のクエリを実行しようとしています。 ORM:

BookingDates::where('email', Input::get('email'))->orWhere('name', 'like', Input::get('name'))->get()
ログイン後にコピー

しかし、結果は返されません。開発者は、orWhereLike 句が結果に一致しない理由がわかりません。

回答:

orWhereLike 構文は、検索する列名と検索の 2 つの引数を受け入れます。学期。この場合、name 列で、Input::get('name') で指定されたユーザー入力を含む値が検索されます。

ただし、提供されるコードでは、orWhereLike メソッドではなく、orWhere メソッドが使用されます。 。 LIKE を使用して大文字と小文字を区別しない検索を実行するための正しい構文は次のとおりです:

orWhere('name', 'like', '%' . Input::get('name') . '%')
ログイン後にコピー

このコードは次の MySQL ステートメントを生成します:

SELECT * FROM booking_dates WHERE email='[email protected]' OR name LIKE '%John%'
ログイン後にコピー

パーセント記号 (%) を使用します。検索語の場合、クエリは、列値内の位置に関係なく、名前列に指定された文字列が含まれるレコードと一致します。

以上がLaravel 5のEloquent ORMでLIKEを使用して大文字と小文字を区別しない検索を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート