MYSQL中的正则表达式不工作?

MYSQL中的正则表达式不工作?,mysql,regex,Mysql,Regex,我有以下疑问: SELECT COUNT(*) FROM 'users' WHERE ( summary REGEXP '^\\(?[\\d]{3}\\)?[\\s-]?[\\d]{3}[\\s-]?[\\d]{4}$' OR bio REGEXP '^\\(?[\\d]{3}\\)?[\\s-]?[\\d]{3}[\\s-]?[\\d]{4}$' OR about_me REGEXP '^\\(?[\\d]{3}\\)?[\\s-]?[\\d]{3}[\\s-]?[\\d]{4}$'

我有以下疑问:

SELECT COUNT(*)
FROM 'users'
WHERE (
 summary REGEXP '^\\(?[\\d]{3}\\)?[\\s-]?[\\d]{3}[\\s-]?[\\d]{4}$' OR
 bio REGEXP '^\\(?[\\d]{3}\\)?[\\s-]?[\\d]{3}[\\s-]?[\\d]{4}$' OR 
 about_me REGEXP '^\\(?[\\d]{3}\\)?[\\s-]?[\\d]{3}[\\s-]?[\\d]{4}$'
);604-456-1234
我已经在这里测试了正则表达式-->并且它适用于我的案例

我有一个用户的bio“604-456-1234”上有以下字符串,应该返回,但不返回


为什么?

我的错误您做错了[\d]不起作用,您需要使用[0-9],因此使用:

'^\\(?[0-9]{3}\\)?[\\s-]?[0-9]{3}[\\s-]?[0-9]{4}$'

工作,具体看这里:没有提到受支持的
\d

我没有仔细查看您的查询,因此我无法为您的查询提供详细信息,但ruby中的正则表达式肯定与MySQL中的不完全相同,因此,如果在使用rubular.com进行开发时它不匹配,也就不足为奇了。如果您有一个大表,并且需要定期执行该查询,那么您将遇到严重的性能问题,因为您需要进行完整的表扫描以完成查询。如果这是你的系统中的一个常规部分,你需要在他们的信息中找到电话号码的用户,也许你会考虑添加一个<代码> HasyPhone < /Cord> TyyIn字段来进行查询,并根据电话信息的存在将这个字段设置在数据插入上。“asdasdad(604)456-1234”…现在,如果字符串中没有其他内容,它只匹配“(604)456-1234)。Thx@nrathausRemove the
^
从一开始,表示“以开始”