在 Sqlite 中,LIKE 函数不起作用或不返回任何内容
Posted
技术标签:
【中文标题】在 Sqlite 中,LIKE 函数不起作用或不返回任何内容【英文标题】:In Sqlite, LIKE function is not working or return nothing 【发布时间】:2020-04-27 00:48:12 【问题描述】:我使用下面的代码从给定数字的数据库中获取数字,因为我在查询下方触发以获取数字,但它不返回数字。我的查询有问题吗?请帮我解决这个问题。
我需要使用 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);
【问题讨论】:
尝试使用"'%"+contactNumber+"%'"
@Md.Asaduzzaman 不工作。
【参考方案1】:
这是在使用 ContentProviders 时使用 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, null, null);
它已经过优化,可以更快地返回结果,并且可以处理带或不带国家代码的电话号码。
【讨论】:
以上是关于在 Sqlite 中,LIKE 函数不起作用或不返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章
注册表单不起作用(CSRF 令牌丢失或不正确。) django
在 SQL LIKE 子句中使用 SqlParameter 不起作用