我有一个电话记录表为
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/