我正在尝试返回我们数据库中电子邮件地址中包含特殊字符(+ . - @ _
除外)的客户。这是我当前的查询:
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 不应该忽略这样的电子邮件地址吗?
最佳答案
我认为问题出在字符类中用于定义范围的连字符,因此它不被视为文字字符。尝试这样写:
Email REGEXP '[^A-Za-z0-9@.+_-]'
如果你把它放在最后(或开头),它就不再有歧义了。
关于MySQL REGEXP 不忽略连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28754703/