Java 使用电话号码比较查询数据库

Java 使用电话号码比较查询数据库,java,android,database,phone-number,Java,Android,Database,Phone Number,我知道,当涉及到各种国家/地区出入境/本地区号时,需要一个外部库(如libphonenumber…或简称phonenumberrutils)来比较两个电话号码。鉴于这一事实,我想知道如何有效地在数据库中查询用户电话簿中的所有电话号码,如果无法在数据库中查询所有电话号码,然后再进行比较(使用PhoneNumberUtils),因为数据库中的号码太多了。有没有办法将libphonenumber/PhoneNumberUtils提供的电话号码比较构建到数据库查询中?谢谢你的帮助 我终于想出了一个答案,

我知道,当涉及到各种国家/地区出入境/本地区号时,需要一个外部库(如libphonenumber…或简称phonenumberrutils)来比较两个电话号码。鉴于这一事实,我想知道如何有效地在数据库中查询用户电话簿中的所有电话号码,如果无法在数据库中查询所有电话号码,然后再进行比较(使用PhoneNumberUtils),因为数据库中的号码太多了。有没有办法将libphonenumber/PhoneNumberUtils提供的电话号码比较构建到数据库查询中?谢谢你的帮助

我终于想出了一个答案,以防有人感兴趣。没有一种方法可以将电话号码比较构建到数据库查询中——您需要事先解析所有号码,并使用libphonenumber之类的东西将其转换为标准格式(可能是e164)。一旦它们在数据库中都是标准格式,对它们的查询就很简单了。

您的问题太广泛,无法在这里正确回答。也许用你的谷歌fu,找到一些东西,把一些代码放在一起,看看什么是有效的,如果你遇到了错误。你在描述这件事时非常开放。什么样的数据库?MySql,Mongo,另一种类型?它的措辞非常宽泛。如果使用MySql或其他东西,您肯定可以提取数据,并且有很多关于如何做到这一点的资源。一旦你有了数据,你就可以使用任何你想要的库来进行比较。我只是觉得你问得太广泛了,会得出主要基于意见的答案。如果您确实阅读了SO FAQ中的第4点,您可以看到这一点。Jordan,谢谢你的回答,但正如我在问题“注意:查询数据库中的所有电话号码,然后进行比较不是一个选项,因为数据库中的号码太多了。”你的回答建议完全按照我说的去做。我的问题不是关于查询的细节(无论是MySql、Mongo还是其他)。我的问题是从理论上比较数据库中的电话号码。很抱歉,我想我没有完全理解。PhoneNumberUtils提供了一种比较方法,可以在获得电话号码后进行比较。您仍然需要查询以获取它们,但这是一个选项。如果这没有帮助,也许其他人会添加输入!乔丹同意,这就是我第一次尝试的——查询电话号码,然后使用PhoneNumberRutils的比较功能。问题是,如果你的数据库中有100000个电话号码,你每次提取100000个电话号码只是为了将它们与用户电话簿中的几十个进行比较(查询花费的时间太长,以至于手机崩溃了一半时间)