1

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

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 个电话列。

有更好的主意吗?

4

1 回答 1

-1

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

试试这个:

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

注意:这将忽略在 phone 列上定义的任何索引,因此如果针对具有大量行的表运行它时要小心。

于 2012-11-13T01:02:47.493 回答