我有以下查询: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}$'
);604-456-1234
我已经测试了正则表达式的位置 - >http://rubular.com/和它适合我的情况。
我有一个用户的生物“604-456-1234”上有下列字符串,它应该返回,但不是。
为什么?
我没有仔细看看你的查询,所以我不能给你具体的查询,但在Ruby中的正则表达式肯定不是MySQL中的正则表达式,所以它不是特别的令人惊讶的是,如果它不匹配使用rubular.com devloping – dirkk
如果你有一个大表,并需要定期执行该查询,你会去有重大的性能问题,因为您需要执行全表扫描才能完成查询。如果这是你的系统的常规部分,你需要在他们的信息中找到具有电话号码的用户,也许你会考虑添加一个'has_phone' tinyint字段来查询,并根据手机的存在插入数据时设置该字段信息。 –