2013-04-25 111 views
0

我有2个表customersimap_emailscustomer表包含客户的电子邮件。搜索逗号分隔值mysql

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

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

我需要从第一张表中获取电子邮件,然后在imap_emails上针对tofrom进行搜索。

首先我想到LIKE条件进行搜索,但我想有像FIND_IN_SET或其他东西的东西。

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

请指教。这样做的

+2

“字段包含逗号分隔值。”红旗,正常化数据库第一 – 2013-04-25 07:18:50

+0

@Dagon我怎样才能正常化这张表?它只是电子邮件,它从外部应用程序读取。我没有适当的关系来保持。 – Red 2013-04-25 07:21:14

+0

为1NF创建密钥 – 2013-04-25 07:24:37

回答

1

例一款基于FIND_IN_SET

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

你不说你怎么想缩小这个下来(即,如果电子邮件使用2个电子邮件地址,你想这两个电子邮件带回)所以现阶段不能增加太多。

+0

谢谢它帮助我... – Red 2013-04-25 09:26:12