在字段中查找字符串

时间:2010-11-17 03:51:57

标签: sql mysql string

这可能很容易,但我是新手,所以在这里。我试图找出是否可以在mysql数据库字段中找到一个字符串。

以下内容只会找到完全匹配

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

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

中,则以下内容将返回结果
 SELECT mycontact, userid
 FROM mytable
 WHERE email like '%#form.email#%'

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

3 个答案:

答案 0 :(得分:2)

你需要重新设计你的模式,列中的电子邮件列表是一个非常非常糟糕的设计,并且SQL没有很好地设计来处理它(因为你已经遇到过)。更好的是email表,其中每个contact可以根据它们提供的电子邮件地址包含一行或多行。

相信我,它会更好地工作,让你的生活更轻松。现在重新设计。

答案 1 :(得分:0)

尝试regular expressio n进行选择。

答案 2 :(得分:0)

如果要在字段中存储多个电子邮件,则应添加空格或管道等分隔符。你可以做到

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

然后在数组中爆炸分隔符和循环。使用pregmatch比较每封电子邮件。但我建议你使用一个单独的表格,如上所述。我完全赞同他们。