php - 在数据库表中搜索电话号码

标签 php mysql

我有一个电话记录表为

phones(id, number);

It may have values as:-
1, 9801234567
2, 980 1234568
3, 9779801234569
4, 9801234570
5, 977 980 1234 571

如果有人搜索 980 1234567(带空格),我可以在运行查询以获得结果之前删除空格。

但我的问题是,当有人搜索 9779801234571 时没有常规范式的数字,它必须返回最后一条记录,即 977 980 1234 571。知道如何有效地做到这一点吗?

最佳答案

这里有一个方法可以做到这一点:

 where replace(phonenumber, ' ', '') = replace($phonenumber, ' ', '')

有效地执行此操作是另一回事。为此,您必须将数据库中的电话号码格式化为规范格式——比如删除 update 语句中的所有空格。然后以相同的格式输入您要搜索的号码。然后,查询可以在该列上使用索引。

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

相关文章:

php - 在 LDAP 'laSTLogon' 查找中,如何破译结果?

php - 如何在 Laravel 中自定义对象集合

PHP PDO_mssql SQLSTATE[01002] Adaptive Server 连接失败(严重性 9)

mysql - 在 MySQL 数据库中存储 RFC3339 时间时的最佳做法是什么?

php - MYSQL/PHP 两个多选下拉过滤器(PDO)

PHP GET 基于 URL ID 的行

MySQL UTF8/ASCII/ISO 编码问题

mysql - 如何将 MySQL WHERE IN 语句与子查询一起使用?

PHP 事件预订 : get time in increments of 30 minutes is 1 hour out

php - MySQL从结果表中显示球队排名