ホームページ >バックエンド開発 >PHPチュートリアル >MySQL のカンマ区切り値で電子メールを効率的に検索するにはどうすればよいですか?

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

DDD
DDDオリジナル
2024-12-05 04:13:09817ブラウズ

How Can I Efficiently Search for Emails in MySQL's Comma-Separated Values?

カンマ区切り値の MySQL の検索

データがカンマ区切り値 (CSV) として MySQL テーブルに保存されているシナリオでは、特定の出来事を見つけることは困難を引き起こす可能性があります。この質問では、複数の受信者が含まれるテーブルに電子メールが保存されている状況について説明します。ここでのタスクは、送信者と受信者の情報を CSV として保持する imap_emails テーブルを使用して、送信者または受信者のいずれかに基づいて電子メールを検索することです。

この検索で​​は、単純な LIKE 条件を使用するだけでは十分ではない場合があります。代わりに、この質問では、FIND_IN_SET または同様の関数など、より洗練されたアプローチを採用することを提案しています。この記事では、この課題に対処するための代替ソリューションについて詳しく説明します。

効果的な方法の 1 つは、FIND_IN_SET 関数を使用して顧客テーブルと imap_emails テーブルの間の結合を実行することです。このアプローチを使用すると、imap_emails テーブルに保存されている CSV 内の特定の値を検索できます。

このアプローチを示すサンプル コード:

SELECT *
FROM imap_emails
INNER JOIN customers
ON FIND_IN_SET(customers.email, imap_emails.to) > 0

このクエリは、imap_emails テーブルからすべての行を返します。 Customers テーブルの email 列は、imap_emails のカンマ区切りの to 列にあります。 table.

この例では、to 列の一致のみがチェックされることに注意してください。必要な動作に応じて、from 列またはその両方で一致を検索するようにクエリを変更できます。この柔軟性により、特定の検索要件に適応できます。

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

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