MySQL REGEXP 不忽略连字符

标签 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 不应该忽略这样的电子邮件地址吗?

最佳答案

我认为问题出在字符类中用于定义范围的连字符,因此它不被视为文字字符。尝试这样写:

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

如果你把它放在最后(或开头),它就不再有歧义了。

关于MySQL REGEXP 不忽略连字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28754703/

相关文章:

MySQL选择重复项

mysql - 每小时复杂的 SQL 查询

sql - 从可用行“分配”的联接

Java 有没有可以将 SQL 语句提取到文件中的 IDE/工具?

mysql - 从另一个网络表获取数据

ruby 正则表达式 : match any . css 文件名不以下划线开头,在任何字符串之前

java - 使用正则表达式检查文件扩展名

javascript - 将 javascript 变量传递给 php

php - 忽略php中mysql记录的顺序

c++ - IRC channel 正则表达式组合