显示/仅限数字(电话号码选择)

时间:2012-11-13 00:58:37

标签: mysql sql

我想搜索一个有电话栏的外包表,但在数据库中,电话号码没有架构。 所以电话号码是varchar并且有很多char(例如:“”, - ,+,/)

请问mysql查询什么只能在varchar中使用数字?

Example:  
input: 30321321

Database:
+36-30/321 32-1 
70/32132131 
0630-32-13-21

我的想法:

Select * from foo where phone like "%3%0%3%2%1%3%2%1%";

这是丑陋和资源密集型的。 该数据库有100000行和2个电话列。

有更好的主意吗?

1 个答案:

答案 0 :(得分:-1)

我会使用REGEXP ...(我想现在我有两个问题:))

试试这个:

SELECT * FROM foo WHERE phone REGEXP '3(.)?0(.)?3(.)?2(.)?1(.)?3(.)?2(.)?1'

注意:这会忽略手机列上定义的任何索引,因此如果针对包含大量行的表运行它,请务必小心。