首页 >数据库 >mysql教程 >如何在 MySQL 中高效搜索逗号分隔的电子邮件地址?

如何在 MySQL 中高效搜索逗号分隔的电子邮件地址?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-09 08:06:07875浏览

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

在 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)。

注释:

  • 以上查询将返回“收件人”或“发件人”中包含指定客户电子邮件地址的所有电子邮件场地。如果您想将搜索范围缩小到特定字段,可以相应地修改连接条件。
  • FIND_IN_SET 还可以用于更复杂的搜索,例如在逗号分隔的列表中查找多个电子邮件地址。请参阅 MySQL 文档以获取更多信息。

以上是如何在 MySQL 中高效搜索逗号分隔的电子邮件地址?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn