2

我有一个带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 或类似的东西,但不知道如何创建所需的正则表达式以及它应该看起来如何?

4

2 回答 2

4

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

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

这允许标点符号存在于您的数字“字符串”中,但仅此而已。

于 2012-11-05T11:51:46.597 回答
-1

REGEXP '^(.{2})+(\.{4}[-].{4})$'此模式适用于带有 () 的电话号码

例子:(00)0000-0000

于 2014-12-03T00:30:42.880 回答