在where子句中如何使用mySQL正则表达式?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (67)
SELECT telephone_number
FROM table
WHERE telephone_number REGEXP '^1[() -]*999[() -]*999[() -]*9999$';

我如何使其有效的任何数字格式和任何数字如

407-888-0909
1(408)998-7654
7776654433
876-7788

现在它的唯一有效的1-999-999-9999

提问于
用户回答回答于

使用:

SELECT telephone_number
  FROM table
 WHERE telephone_number REGEXP '^1[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{3}[() -]*[[:digit:]]{4}$';

参考:

用户回答回答于

用空格,破折号,圆括号等将数字存储在数据库中不是非常明智的做法。最有效的方法是将所有垃圾截断为一个简单的10位数字。这样,你实际上可以将数字存储在基于INTEGER的列而不是VARCHAR中。

扫码关注云+社区

领取腾讯云代金券