MySQL REGEXP不会忽略连字符

时间:2015-02-26 23:18:53

标签: mysql sql regex

我正在尝试在我们的数据库中返回在其电子邮件地址中有特殊字符的客户(+ . - @ _除外)。这是我目前的查询:

SELECT UserID, FirstName, LastName, Email 
FROM Customer 
WHERE Email REGEXP '[^A-Za-z0-9\\@\\.\\-\\+\\_]' and Active = 1 and Enabled = 1;

但返回的数据集仍包含john-smith@something.com等电子邮件。这个REGEXP不应该忽略这样的电子邮件地址吗?

1 个答案:

答案 0 :(得分:2)

我认为问题来自于在字符类中用于定义范围的连字符,因此它不被视为文字字符。试着写下这个:

Email REGEXP '[^A-Za-z0-9@.+_-]'

如果你把它放在最后(或者在开始时)它就不再那么暧昧了。