帮助MySQL SELECT WHERE子句

时间:2011-01-12 18:36:42

标签: sql mysql

我的表格中的列包含电子邮件地址。

我有一个文本字符串,其中包含一些用逗号分隔的电子邮件地址的用户名。如果需要,我可以将文本sting成一个数组,以使我的SELECT WHERE子句正常工作。

文本字符串搜索参数是'bob,sally,steve'

我想生成一个WHERE子句,它只返回表格中电子邮件地址的用户名部分与我的文本字符串搜索参数中的一个用户名匹配的行。

因此,不会返回使用frank@email.com的行,但是sally @ zmail.com将是。

是否有人有WHERE子句样本产生此结果?

感谢。

3 个答案:

答案 0 :(得分:1)

也许像

WHERE email like '%bob%' or email like '%sally%' or email like '%steve%'

请注意,这也会匹配adjklqwefh@bob.com。如果您只想匹配起始字符,只需省略前导%

WHERE email like 'bob%' or email like 'sally%' or email like 'steve%'

如果您想要更具限制性,可以尝试:

WHERE email like 'bob@%.com' or email like 'sally@%.com' or email like 'steve@%.com'

另外,请阅读LIKE运算符和正则表达式(这里你不需要它,但最终你可能需要它)。

答案 1 :(得分:0)

这对你有用,但我觉得它会很慢

WHERE SUBSTRING(email, 1, (LOCATE('@', email) - 1)) in ('steve', 'smith', .... )

答案 2 :(得分:0)

以下语句将选择“email”列中地址以“bob @”开头的任何行。 您可以用您想要匹配的用户名替换“bob”。

SELECT * FROM table_name WHERE email REGEXP "^bob@"