2010-11-17 30 views
0

内的字符串,这可能是容易的,但我是新来这个所以在这里不言而喻。我试图找到一个字符串可以在MySQL数据库字段中找到。查找场

下只能找到完全匹配

SELECT mycontact, userid 
FROM mytable 
WHERE email = #form.email#' 

下如果字段的电子邮件是包含在form.email

SELECT mycontact, userid 
FROM mytable 
WHERE email like '%#form.email#%' 

但这些不会给我想要的东西会返回结果。我想要与上述相反。电子邮件字段可以包含多个电子邮件地址。我希望能够输入一个值,即form.email,并搜索表格并在包含form.emal的“email”字段中查找任何记录。 %LIKE%将不起作用,因为我不想检索多个。如果有人输入[email protected],我不想得到[email protected][email protected]等。这是困难的部分。帮助表示赞赏。我正在使用MYSQL数据库。谢谢。

+0

我同意以下甄子丹,但如果你不打算电子邮件地址分成行,你怎么当你有倍数它们分开? – timothyclifford 2010-11-17 04:03:50

+0

对不起,我不清楚你是如何在单个字段中存储多个电子邮件。你能提供一个例子吗? – 2010-11-17 04:03:56

回答

2

你需要重新设计你的架构,有一列电子邮件列表是一个非常,非常糟糕的设计和SQL没有很好地设计来处理它(因为你正在运行到的话)。最好是email表,其中每个contact可以有一个或多个基于他们提供的电子邮件地址的行。

相信我,它会更好地工作,让你的生活变得更加简单。现在重新设计。

0

如果您存储在现场多个电子邮件你应该添加一个分隔符像空间或管道。你可以做

SELECT mycontact, userid FROM mytable WHERE email like '%#form.email#%' 

然后爆炸分隔符和数组中的循环。通过使用pregmatch比较每封电子邮件。但是我建议你像上面所说的那样为此使用一个单独的表格。我完全同意他们。