COLLATE LOCALIZED ASC代表什么?

private Cursor getContacts() { // Run query Uri uri = ContactsContract.Contacts.CONTENT_URI; String[] projection = new String[] { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }; String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" + (mShowInvisible ? "0" : "1") + "'"; String[] selectionArgs = null; String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC"; return managedQuery(uri, projection, selection, selectionArgs, sortOrder); } 

COLLATE LOCALIZED ASC代表什么?

  • 资产文件夹中的数据库文件。 它会被更新吗?
  • 如何在Android SQlite中添加布尔列
  • Sqlite检查表是否为空
  • Android:从应用程序中的多个活动访问单个数据库?
  • 如何在Android上扩展ORMLite的BaseDaoImpl类以扩展function
  • 在android sqlite数据库中删除前N行
  • 如何在Android中使用Sqiltehelper删除表和数据库
  • 是否可以在android数据库的文本字段中应用主键
  • 整理只是幻想说(sorting)。 所以这是按照asc结尾顺序的本地化偏好(即当前语言的字母表和约定)sorting。

    它指示SQLite适当地sorting非ASCII字符。 带有变音符(有些称为重音符)的字符比字符Z具有更高的字节编码,所以简单的ASCIIsorting不适合许多外语。

    例如,大写A char的字节码是0x41 ,大写Z char是0x5A 。 那么我们有Unicode(大写A),Unicode中的代码是0x00C1 。 所以一个普通的字节码sorting会导致Á在Z之后。

    但是在具有这种特征的语言中,惯例是把那些带有变音符号的语言当作没有变音符号。 所以Á应该和平原A一起,至less在B之前

    为了说明,我们下面列出了使用字节码进行sorting的名称:

    • 布伦达
    • 黛比
    • 乔治
    • 阿尔瓦罗
    • 艾力

    现在使用COLLATE LOCALIZED ,它将按字符的“基数”进行sorting:

    • 阿尔瓦罗
    • 布伦达
    • 黛比
    • 艾力
    • 乔治

    COLLATE是一个SQL操作符,它可以让您覆盖string的默认sorting顺序。 例如,“COLLATE NOCASE”不区分大小写,“COLLATE BINARY”区分大小写。

    SQLite C接口允许您定义自定义sorting规则( http://www.sqlite.org/c3ref/create_collat​​ion.html )。