SQLite排序COLLATE LOCALIZED不起作用

时间:2014-05-03 08:32:13

标签: java android sqlite

我有一个用SQLite数据库浏览器创建的SQLite数据库。数据库包含一些土耳其特定字母为了按字母顺序对它们进行排序,我尝试了以下代码,但它不起作用。

我正在使用SQLiteAssetHelper

可能有什么问题?

public Cursor getAuthors() {

    SQLiteDatabase db = getWritableDatabase();
    db.setLocale(new Locale("tr","TR"));


    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();

    String[] sqlSelect = { "_id", "name", "surname", "photoName" };
    String sqlTables = "authors";

    qb.setTables(sqlTables);
    Cursor c = qb.query(db, sqlSelect, null, null, null, null,
            "name,surname COLLATE LOCALIZED ASC");

    c.moveToFirst();

    return c;

}

1 个答案:

答案 0 :(得分:3)

"name,surname COLLATE LOCALIZED"

使用默认排序规则对name列进行排序,并使用本地化排序规则对surname列进行排序。

要使用本地化排序规则对两列进行排序,您必须为两者指定排序规则:

"name COLLATE LOCALIZED, surname COLLATE LOCALIZED"