当用户输入部分电话号码时,我需要比较并查找该部分电话号码的匹配记录。我遇到的问题是每个人都以不同的方式输入他们的电话号码。
(555) 123-4567
(444)333-2222
1.800.876.9000
1-555-333-1111
etc. etc. and on and on.
所以我的想法是,如果有一种方法可以从数据库中的字段中删除任何和所有标点符号,那么我可以轻松地比较用户选择搜索的任何内容... 555或9000或123。
有没有办法:
SELECT * FROM person WHERE {only the digits of the phone column} LIKE '%searchValue%'
答案 0 :(得分:1)
事实证明,正如我所知,有些事情我很想念......
SELECT *
FROM person p
WHERE REPLACE(phone, '[^0-9]+', '') LIKE '%555123%';
完全符合我的要求。如果有更高效,更快速的查询方式,请告诉我们!