查找重复的电话号码(即使格式不同)

时间:2013-03-28 00:32:28

标签: mysql sql

我使用以下查询从表格中选择重复的电话号码。

SELECT id, REPLACE( REPLACE( REPLACE( REPLACE( REPLACE( phone, "+", '' ) , ")", '' ) , "(", '' ) , "-", '' ) , ' ', '' ) AS strippedPhone
FROM `customers`
GROUP BY strippedPhone
HAVING count( strippedPhone ) >1
LIMIT 0 , 300

它看起来很丑陋,并没有考虑具有电话号码的字段上字母数字字符的可能性。

有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

在我看来,您可以在将电话号码存储到数据库之前将其标准化。无论格式如何,任何能够比较电话号码的SQL查询都将是非常低效的。如果您在将电话号码插入数据库之前重新格式化电话号码,那么检查重复号码是很容易的。

如果要在现有数据库上执行此操作,则必须首先规范化数据库中的数据,但只需执行一次。