ホームページ > データベース > mysql チュートリアル > Laravelの「To」列のJSON配列内のメールを検索するにはどうすればよいですか?

Laravelの「To」列のJSON配列内のメールを検索するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-10-29 04:21:29
オリジナル
767 人が閲覧しました

How to Search for Emails within a JSON Array in Laravel's

Laravel での JSON 列の検索

Laravel で JSON 列を操作する場合、特定の値の検索は困難な場合があります。ここでは、「To」列に保存された JSON 配列内で電子メールを検索するという頻繁に発生する問題の解決策を示します。

問題:

「電子メール」テーブル内、JSON 型の「To」列には、電子メール アドレスを表すネストされた配列が含まれます。目標は、特定の受信者に送信されたすべてのメールのコレクションを取得することです。

失敗した試行:

Laravel の whereJsonContains メソッドを使用して最初に検索しようとしましたが、一致しませんでした。 。クエリは次のように「変換」されます:

select * from `emails` where json_contains(`to`->'$."emailAddress"."address"', '\"[email protected]\"'))
ログイン後にコピー

解決策:

検索を成功させる鍵は、矢印演算子 (->) がそうではないことを理解することにあります。配列を操作します。配列を含む JSON 検索の場合は、次の構文を使用します。

DB::table('emails')
   ->whereJsonContains('to', [['emailAddress' => ['address' => '[email protected]']]])
   ->get()
ログイン後にコピー

このクエリは、指定された受信者のアドレスに送信されたすべての電子メールを正しく識別して返します。

以上がLaravelの「To」列のJSON配列内のメールを検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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