用逗号分隔值 mysql 搜索

2022-01-30 00:00:00 php mysql

我有 2 个表 customersimap_emails.customer 表包含客户的电子邮件.

i have 2 tables customers and imap_emails. customer table contain emails of customers.

我正在使用 PHP-IMAP 从电子邮件服务器获取电子邮件,然后保存到数据库表 imap_emails.

I am using PHP-IMAP to fetch email from email server and then saving to database table imap_emails.

imap_emails 表有 2 个字段 fromtoto 字段包含逗号分隔值.

the imap_emails table has 2 fields from and to and to field contains comma separated values.

我需要从第一个表中获取电子邮件,然后在 imap_emails 上搜索 tofrom.

i need to fetch emails from first table and then search against to and from on imap_emails.

首先我想到了一个要搜索的 LIKE 条件,但我想要类似 FIND_IN_SET 或其他的东西.

First i thought about a LIKE condition to search , but i would like to have something like FIND_IN_SET or something other.

我怎样才能以更好的方式实现这一目标?(由于某些原因,我不能在此表上使用关系)

How can i achieve this in a better way ? ( For some reasons i cannot use relations on this table )

请指教.

推荐答案

基于FIND_IN_SET的join示例

Example of doing a join based on FIND_IN_SET

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

您没有说明您想如何缩小范围(即,如果一封电子邮件使用 2 个电子邮件地址,您是否希望将两个电子邮件都带回来),所以在这个阶段不能添加太多.

You don't say how you want to narrow this down (ie, if an email uses 2 email addresses do you want both emails brought back), so can't add much at this stage.

相关文章