将凌乱的数据与干净的值进行比较

时间:2016-02-01 13:45:43

标签: mysql sql

您好我面临以下问题:

我有phonedata(购买,导入等...),现在有不同的格式,如

0123/4567
0123 4567
0123/4567 89
(0)123/4567
+00 123456789

我从PBX获得了一个像“01234567”这样的“干净”值。

所以我需要的是这样的(小心,伪代码)

SELECT pbx.* FROM pbx WHERE pbx.phone LIKE REPLACE(REPLACE(pbx.mobile,' ', ''), '/', '')...

我知道这是saniting hell但是因为所有的同事输入他们喜欢的号码,而且第三方列表也包含各种各样的数据,我不能对记录本身进行消毒。我也不想吃掉所有可能的格式,将上面的值清理干净就足够了,但是我无法将我的头脑包围起来如何查询。

我希望你能帮助我。

1 个答案:

答案 0 :(得分:2)

如果您在检索时不关心数字格式,请在清除数字后插入数字。

如果您关心,请在表格中添加其他字段:cleared_phone,然后将原始号码插入phone,将已清除的号码插入cleared_phone,并在搜索时使用{ {1}}但显示cleared_phone