【问题标题】:Distinct and substri in android with sqlite使用sqlite在android中区分和substri
【发布时间】:2012-11-15 01:53:25
【问题描述】:

我想得到所有联系人的第一个字母而不重复我不能使用这样的东西:

光标 flc = this.cr.query(ContactsContract.Contacts.CONTENT_URI, Proyection2, null, null, "UPPER("+ContactsContract.Contacts.DISPLAY_NAME+")");

因为内容提供者不允许在代码中使用函数,所以这是我想要的解释:

"选择不同的substr(" + ContactsContract.Contacts.DISPLAY_NAME+", 1、1) 来自“+ContactsContract.Contacts.CONTENT_URI”

我搜索了一种与内容提供商或直接访问 bd 的方法,但我不知道如何。

【问题讨论】:

  • 这可能行不通。 ContentProvider 不是直接的 SQLite 接口,它只是看起来很相似,并且通常由 SQLite 数据库支持。但是不能保证提供者会以任何方式允许/理解 SQLite 语法。通讯录提供商是有限制的提供商之一。此外,UPPER(...) 部分将进入 Projection 参数。

标签: android sql sqlite contacts


【解决方案1】:

内容提供者不是通用的 SQL 接口;它们仅支持已实现的访问,而且它们可能一开始就不是基于 SQL 数据库。

如果您想做任何内容提供商不直接支持的过滤或分组,您必须自己做。

【讨论】:

    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 2014-05-04
    • 2012-02-20
    • 2015-06-28
    • 1970-01-01
    • 2019-02-13
    • 1970-01-01
    • 2013-03-06
    相关资源
    最近更新 更多