Android SQLiteDatabase查询排序顺序

Mau*_*ice 10 sqlite android

我的数据库中有数据如下:

Alice
anderson
Beatrice
benny
Carmen
calzone
Run Code Online (Sandbox Code Playgroud)

使用此代码:

mDb.query(DATABASE_NAMES_TABLE, new String[] { KEY_ROWID,
            KEY_NAME }, null, null,
            null, null, KEY_NAME+ " ASC");
Run Code Online (Sandbox Code Playgroud)

或者此过滤器为""的代码:

mDb.query(true, DATABASE_NAMES_TABLE, new String[] { KEY_ROWID,
        KEY_NAME }, KEY_NAME + " LIKE ?",
        new String[] { filter+"%" }, null, null, null,
        null);
Run Code Online (Sandbox Code Playgroud)

它按如下方式对上述数据进行排序:

Alice
Beatrice
Carmen
anderson
benny
calzone
Run Code Online (Sandbox Code Playgroud)

这是正常的行为吗?如何将它排序到以上所有As和Bs和Cs在一起的顺序?谢谢.

ken*_*u73 12

SQL使用ASCII位置进行排序,因此您可以某种方式使用"COLLATE"...

性质上的东西:

ORDER BY YourColumn Collate NOCASE
Run Code Online (Sandbox Code Playgroud)

要么

ORDER BY YourColumn Collate SQL_Latin1_General_CP850_BIN
Run Code Online (Sandbox Code Playgroud)


Ebo*_*ike 9

您可以通过COLLATE NOCASEORDER BY子句中添加,或者(最好)在您的特定列的声明中创建表本身来指定区分大小写.