我有一个客户的数据库表,其中客户的电话号码存储在名为 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/