Laravel-5 LIKE 同等の (雄弁な) クエリの比較
この質問では、Laravel-5 を使用したデータベース クエリでの LIKE 演算子の使用法について説明します。雄弁。提供されたコード:
BookingDates::where('email', Input::get('email')) ->orWhere('name', 'like', Input::get('name'))->get()
は、指定された電子メール、または名前フィールド内に特定の文字列を含む電子メールのいずれかに一致する結果を取得することを目的としています。ただし、orWhereLike 条件は結果を生成しません。
目的は、次と同等のクエリを作成することです。
select * from booking_dates where email='[email protected]' or name like '%John%'
Solution
Toこの問題を解決するには、LIKE 句内で '...' の代わりに '%...'% を使用することをお勧めします。これにより、指定された文字列が目的のフィールド内で確実に見つかるようになります。または、->orWhereLike の代わりに ->whereLike を使用すると、構文がわかりやすくなります。
BookingDates::where('email', Input::get('email')) ->orWhere('name', 'like', '%' . Input::get('name') . '%') ->get();
データベース ログ
生成された SQL クエリを確認するには、dd(DB::getQueryLog()) 関数を使用して、実行されたクエリを検査できます。潜在的なエラーを特定します。これは、トラブルシューティングに役立ち、クエリが期待どおりに機能していることを確認できます。
以上がLaravel 5 Eloquentの「orWhere」でLIKE演算子を正しく使用する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。