ホームページ > データベース > mysql チュートリアル > MySQL でカンマ区切りの電子メール アドレスを効率的に検索するにはどうすればよいですか?

MySQL でカンマ区切りの電子メール アドレスを効率的に検索するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-09 08:06:07
オリジナル
873 人が閲覧しました

How to Efficiently Search Comma-Separated Email Addresses in MySQL?

MySQL でカンマ区切り値を含む電子メールを検索する

カンマ区切り値 (CSV) を含む MySQL テーブルを操作する場合、データを検索する挑戦的になる可能性があります。たとえば、CSV として保存された電子メール アドレスを含むテーブルがある場合、特定の電子メール アドレスに基づいてクエリを実行する必要がある場合があります。

質問:

データベース「customers」(顧客の電子メール アドレスを含む) と「imap_emails」(CSV 値を含む「to」および「from」フィールドを含む) の 2 つのテーブルで構成されます。目標は、「customers」テーブルから電子メールを取得し、「imap_emails」テーブルの「to」フィールドと「from」フィールドで電子メールを検索することです。

FIND_IN_SET を使用した解決策:

このような検索を実行する効率的な方法の 1 つは、FIND_IN_SET 関数を使用することです。この関数は、カンマ区切りリスト内の指定された文字列の位置を返します。これを結合と組み合わせることで、目的の結果を得ることができます。

クエリの例:

SELECT *
FROM imap_emails
INNER JOIN customers
ON FIND_IN_SET(customers.email, imap_emails.to) > 0
ログイン後にコピー

このクエリは、「imap_emails」と「imap_emails」の間の内部結合を実行します。顧客の電子メール アドレスが「imap_emails」テーブルの「to」フィールドに存在するという条件に基づく「customers」テーブル (次のように決定されます) FIND_IN_SET).

注:

  • 上記のクエリは、指定された顧客の電子メール アドレスを「宛先」または「差出人」のいずれかに含むすべての電子メールを返します。分野。検索を特定のフィールドに絞り込みたい場合は、それに応じて結合条件を変更できます。
  • FIND_IN_SET は、カンマ区切りのリスト内で複数の電子メール アドレスを検索するなど、より複雑な検索にも使用できます。詳細については、MySQL のドキュメントを参照してください。

以上がMySQL でカンマ区切りの電子メール アドレスを効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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