在 MySQL 中查找包含逗号分隔值的电子邮件
使用包含逗号分隔值 (CSV) 的 MySQL 表时,搜索数据可能具有挑战性。例如,如果您有一个表,其中的电子邮件地址存储为 CSV,您可能需要根据特定的电子邮件地址对其进行查询。
问题:
数据库由两个表组成:“customers”(包含客户电子邮件地址)和“imap_emails”(包含具有 CSV 值的“to”和“from”字段)。目标是从“customers”表中获取电子邮件,并在“imap_emails”表的“to”和“from”字段中搜索它们。
使用 FIND_IN_SET 的解决方案:
执行此类搜索的一种有效方法是使用 FIND_IN_SET 函数。此函数返回指定字符串在逗号分隔列表中的位置。通过将其与联接结合起来,您可以获得所需的结果。
示例查询:
SELECT * FROM imap_emails INNER JOIN customers ON FIND_IN_SET(customers.email, imap_emails.to) > 0
此查询在“imap_emails”和“imap_emails”之间执行内部联接“customers”表基于客户的电子邮件地址存在于“imap_emails”表的“to”字段中的条件(由下式确定) FIND_IN_SET)。
注释:
以上是如何在 MySQL 中高效搜索逗号分隔的电子邮件地址?的详细内容。更多信息请关注PHP中文网其他相关文章!