我想搜索一个有电话栏的外包表,但在数据库中,电话号码没有架构。 所以电话号码是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个电话列。
有更好的主意吗?
答案 0 :(得分:-1)
我会使用REGEXP
...(我想现在我有两个问题:))
试试这个:
SELECT * FROM foo WHERE phone REGEXP '3(.)?0(.)?3(.)?2(.)?1(.)?3(.)?2(.)?1'
注意:这会忽略手机列上定义的任何索引,因此如果针对包含大量行的表运行它,请务必小心。