从MYSQL DB搜索电话号码

时间:2012-11-05 11:47:45

标签: mysql regex

我有一个包含phone列的表格。其中的手机看起来像+1(123)456-3780。 如果用户在搜索字段“35”中输入,我应该向所有用户显示电话:

+3 (534) 000-1010

+1 (350) 000-9090

+1 (003) 534-2343

+1 (001) 223-5323 etc.

我试图做那样的事情

SELECT * FROM `mytable` WHERE `phone` LIKE '%3%5'

但这不是最佳解决方案,因为查询会获得+3(000)000-500等其他手机。

我想使用RLIKE或类似的东西,但不知道创建需要正则表达式以及它应该如何看待?

2 个答案:

答案 0 :(得分:4)

每个输入字符之间需要[() -]*

SELECT * FROM `mytable`
WHERE `phone` REGEXP '3[() -]*5'

这允许在你的数字“字符串”中存在标点符号,但没有别的。

答案 1 :(得分:-1)

REGEXP '^(.{2})+(\.{4}[-].{4})$'此模式适用于带()

的电话号码

示例:(00)0000-0000