カンマ区切り値を使用した MySQL データの検索
特定のシナリオでは、データベースの列にカンマ区切りの値が含まれる場合があります。テーブルの「宛先」フィールドに保存された電子メールの場合。このようなデータを検索する場合、多くの場合、カンマ区切りのリスト内で特定の値を検索する必要があります。
これに対処する 1 つの方法は、FIND_IN_SET 関数を使用することです。この関数は、文字列内の指定された部分文字列の位置を返します。電子メールの検索のコンテキストでは、FIND_IN_SET を使用して、顧客の電子メール アドレスが電子メールの「宛先」フィールド内の値のいずれかに一致するかどうかを確認できます。
顧客 email 列を持つテーブルと、imap_emails テーブルto 列には、カンマ区切りの電子メール アドレスが含まれます。次のクエリは、FIND_IN_SET を使用して顧客の電子メール アドレスに基づいて電子メールを検索する方法を示しています。
SELECT * FROM imap_emails INNER JOIN customers ON FIND_IN_SET(customers.email, imap_emails.to) > 0;
imap_emails テーブルのすべての行を返します。 「宛先」フィールド内。ただし、電子メール アドレスが複数回出現するかどうかは考慮されないことに注意することが重要です。これが懸念される場合は、それに応じてクエリを変更する必要がある場合があります。
FIND_IN_SET 関数を利用すると、カンマ区切りデータ内の値を効果的に検索でき、そのようなデータ構造をクエリするための柔軟で効率的なメカニズムが提供されます。 MySQL 内。以上がMySQL でカンマ区切り値を効率的に検索するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。