在Sqlite中,LIKE函数不起作用或什么也不返回

我使用下面的代码从给定数字中从数据库中获取数字,为此我在查询下面触发以获取数字,但它不返回数字。我的查询中有问题吗?请帮助我解决此问题。

我需要使用 Like 函数,因为某些数字以特殊的字符和空格存储。

contactNumber = contactNumber.replaceAll("[-+.^:,]","");
        contactNumber="%"+contactNumber+"%";
        String strEmail = "";
        String name = "";


Cursor cursor = ctx.getcontentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.NUMber + " LIKE ?",new String[]{contactNumber},null);
ainiliyua 回答:在Sqlite中,LIKE函数不起作用或什么也不返回

这是使用ContentProvider时使用LIKE的方法:

getContentResolver().query(Phone.CONTENT_URI,null,Phone.NUMBER + " LIKE ?",new String[] { "%" + contactNumber + "%" },null);

但是,按电话号码搜索的最佳方法是使用专用的PhoneLookup API:

Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI,Uri.encode(phoneNumber));
getContentResolver().query(uri,new String[]{PhoneLookup.CONTACT_ID,PhoneLookup.DISPLAY_NAME},null);

它经过优化,可以更快地返回结果,并且可以处理带或不带国家代码的电话号码。

本文链接:https://www.f2er.com/2797927.html

大家都在问