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

标签 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%'

最佳答案

事实证明,正如我认为的那样,我错过了一些非常简单的事情......

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

正是我想要的。如果有更有效、更快的查询方式来执行此操作,请告诉我!

关于mysql - 在 MySql 中,有没有一种方法可以将值与列中的数字进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28417447/

相关文章:

python - 将数千条记录插入表中的最有效方法是什么(MySQL、Python、Django)

java - 比较两个表中的值并将从第一个表中获取的值插入到第二个表中

sql - 查询持续时间时的多种情况(Redshift)

mysql - 如何从 mysql 动态选择表

sql - 检索具有最大日期的行

php - 只显示用户选择范围内的结果

python mysql 字典

mysql - apache进程和Mysql进程过载

sql - dbo 和 [dbo] 之间的区别

sql - sql联接中联接列顺序的最佳实践?