您好我面临以下问题:
我有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但是因为所有的同事输入他们喜欢的号码,而且第三方列表也包含各种各样的数据,我不能对记录本身进行消毒。我也不想吃掉所有可能的格式,将上面的值清理干净就足够了,但是我无法将我的头脑包围起来如何查询。
我希望你能帮助我。
答案 0 :(得分:2)
如果您在检索时不关心数字格式,请在清除数字后插入数字。
如果您关心,请在表格中添加其他字段:cleared_phone
,然后将原始号码插入phone
,将已清除的号码插入cleared_phone
,并在搜索时使用{ {1}}但显示cleared_phone