SELECT时,MYSQL从列值中删除非数字字符

时间:2018-04-16 18:51:25

标签: php mysql mysqli pdo

目前,我使用以下嵌套REPLACE函数删除所有非数字字符和间距。这使我能够比较数据库上的电话号码,而不必担心输入的电话号码是否包含非数字值

SQL示例:

SELECT * FROM myTable
WHERE replace( replace( replace( replace( replace( TelephoneCol, ' ', '' ), '-', '' ), '(', '' ), ')', '' ), '+', '') = '01254566876'

上述查询效果很好,如果数据库中的电话号码格式为(0) 1254566876,则会找到匹配项。问题是它非常慢。是否有REGEX或更好的方法从数据库中选择一个已删除所有非数字字符的值?

我正在使用自定义PDO函数来解析sql字符串。我没有使用弃用的mysql函数。

0 个答案:

没有答案