在 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 函数不起作用或不返回任何内容的主要内容,如果未能解决你的问题,请参考以下文章

字符串连接在 SQLite 中不起作用

注册表单不起作用(CSRF 令牌丢失或不正确。) django

在 SQL LIKE 子句中使用 SqlParameter 不起作用

为啥将 LIKE 与 TIMESTAMPS 一起使用在 DB2 中不起作用

LIKE 在 SQL 中不起作用

SKSpriteNode .run不起作用或不起作用