我正在尝试在我们的数据库中返回在其电子邮件地址中有特殊字符的客户(+ . - @ _
除外)。这是我目前的查询:
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不应该忽略这样的电子邮件地址吗?
答案 0 :(得分:2)
我认为问题来自于在字符类中用于定义范围的连字符,因此它不被视为文字字符。试着写下这个:
Email REGEXP '[^A-Za-z0-9@.+_-]'
如果你把它放在最后(或者在开始时)它就不再那么暧昧了。