php - 在数据库中搜索忽略特殊字符的电话号码

标签 php mysql

我有一个客户的数据库表,其中客户的电话号码存储在名为 phoneNumber 的字段中。

customerId | customerName | phoneNumber
1               Maulik      0213-383030
2               Maulik1     0-213-383030
3               Maulik2     (0213) 383030

我想搜索具有相同电话号码的客户。

电话号码可能包含 '-' 、 '(', ')' 、空格字符。我想在搜索时忽略除数字以外的所有字符。

如数据库所示,当我想搜索电话号码“0213383030”时,这些所有客户都应该在结果集中。

你能建议我查询这个吗。

最佳答案

您可以使用 REGEXP WHILE 子句中的运算符(或其同义词 RLIKE)。对于正则表达式,在要查找的数字的每个数字之间放入 [^0-9]*。例如:

SELECT * FROM customers WHERE
  phoneNumber RLIKE
  '[^0-9]*0[^0-9]*2[^0-9]*1[^0-9]*3[^0-9]*3[^0-9]*8[^0-9]*3[^0-9]*0[^0-9]*3[^0-9]*0[^0-9]*'

这很糟糕,但应该可以。

关于php - 在数据库中搜索忽略特殊字符的电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5401714/

相关文章:

php - 每发布三篇文章后重新运行循环? (WordPress)

javascript - 如何使用输入从数组值中插入多行

php - mysql查询: date_format and sprintf()

JavaFX TableView 与 SceneBuilder

mysql - 如何根据当前用户时区从mysql检索数据

PHP PDO : Constant Variable at End of SQL Query

php - 无法借助相应复选框获取文本字段的值。请帮忙

php - [HTML/CSS/JavaScript/PHP] : In which order code must be written?

mysql - 计划命令如何使用DB查询正确获取数据库信息

Mysql-外键和数组