我的 PhoneNos 表
上有电话号码列表ID | PhoneNo
1 | +61 2 9666 8000
我们尝试在内容表格中搜索此手机号码(即desc字段)
挑战是实际的:
desc字段是一个文本,输入可以是任何东西,例如:
ContentID | Desc
1 | bla bla ... +61 (02) 9666 8000 ... bla bla
2 | bla bla ... +61-2-9666-8000 bla bla
3 | bla bla ... +61 2 96668000 bla bla
4 | bla bla ... +61296668000 00116129668000 bla bla
或者可以是从额外间距排列的任何东西,例如
5 | bla bla ... +61 (02) 9666 8000 ... bla bla
6 | bla bla ... +61-2 9662 0382 ... bla bla
这是澳大利亚的电话号码,但它可能是美国或任何其他国家,因此它与一个特定的国家并不紧密。
这款手机没有任何模式,所以此前和之后的手机没有。所以它可以是任何东西。
有没有办法轻易处理这类事情?我可以构建上面的每个条件,但我只是想知道是否有更好的解决方案。
答案 0 :(得分:2)
将用户输入标准化为易于搜索的格式,即“+ [x]”。如果用户输入其他空格,请将其删除。必要时添加国家/地区代码从开始删除00并用+替换。您甚至可以将电话号码拆分为三列,以便于搜索。
答案 1 :(得分:1)
为什么不从电话号码中删除特殊符号并将其存储为数字字符串?
您需要考虑的唯一情况是+,因为它取代了00。
所以基本上,你的记录只有数字,你的输入只有数字。只需确保在数据库和输入中将+标准化为正确值。
我要做的是用00而不是+来存储它们,这样当带有00的搜索输入通过时,它将起作用,以及使用+进行搜索。希望这是有道理的。
答案 2 :(得分:1)