这可能很容易,但我是新手,所以在这里。我试图找出是否可以在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数据库。感谢。
答案 0 :(得分:2)
你需要重新设计你的模式,列中的电子邮件列表是一个非常非常糟糕的设计,并且SQL没有很好地设计来处理它(因为你已经遇到过)。更好的是email
表,其中每个contact
可以根据它们提供的电子邮件地址包含一行或多行。
相信我,它会更好地工作,让你的生活更轻松。现在重新设计。
答案 1 :(得分:0)
尝试regular expressio n进行选择。
答案 2 :(得分:0)
如果要在字段中存储多个电子邮件,则应添加空格或管道等分隔符。你可以做到
SELECT mycontact, userid FROM mytable WHERE email like '%#form.email#%'
然后在数组中爆炸分隔符和循环。使用pregmatch比较每封电子邮件。但我建议你使用一个单独的表格,如上所述。我完全赞同他们。