在MySql中有一种方法可以将值与列中的数字进行比较吗?

时间:2015-02-09 19:11:44

标签: mysql sql

当用户输入部分电话号码时,我需要比较并查找该部分电话号码的匹配记录。我遇到的问题是每个人都以不同的方式输入他们的电话号码。

(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%'

1 个答案:

答案 0 :(得分:1)

事实证明,正如我所知,有些事情我很想念......

SELECT *
FROM person p 
WHERE REPLACE(phone, '[^0-9]+', '') LIKE '%555123%';

完全符合我的要求。如果有更高效,更快速的查询方式,请告诉我们!