当用户输入电话号码的一部分时,我需要比较并查找该部分电话号码的匹配记录。我遇到的问题是每个人输入的电话号码都不同。
(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%'
最佳答案
事实证明,正如我认为的那样,我错过了一些非常简单的事情......
SELECT *
FROM person p
WHERE REPLACE(phone, '[^0-9]+', '') LIKE '%555123%';
正是我想要的。如果有更有效、更快的查询方式来执行此操作,请告诉我!
关于mysql - 在 MySql 中,有没有一种方法可以将值与列中的数字进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417447/