返回没有区分大小写的sqlite DB

rin*_*job 3 sqlite android

我坐在这里想知道如何在没有区分大小写的情况下对数据库进行排序.假设我有'A','a','B','b'.它将打印如下:'A','B','a','b'.但我希望它以更人性化的方式排序.这是我的Cursor函数:

/**
* Return a Cursor over the list of all brands in the database
* 
* @return Cursor over all brands sorted alphabetically 
+ TODO: doesn't sort alphabetically because it's case sensitive
*/
public Cursor fetchAllBrands() {

return mDb.query(Constants.DATABASE_TABLE, 
    new String[] { 
        Constants.KEY_ROWID, Constants.KEY_BRAND, Constants.KEY_STOCK 
    }, 
    null, null, null, null, Constants.KEY_BRAND);
}
Run Code Online (Sandbox Code Playgroud)

我注意到Java有CASE_INSENSITIVE_ORDER,但我不知道如何实现它,如果这是解决这个问题的方法.任何人都可以帮我吗?

Ste*_*aly 5

这里得到了解答.不幸的是,您似乎必须使用该rawQuery()方法而不是使用query()包装器方法.此方法允许您输入将执行的原始SQL代码...

db.rawQuery("SELECT " + Constants.KEY_ROWID + "," + Constants.KEY_BRAND + "," +
             Constants.KEY_STOCK +
           " FROM " + Constants.DATABASE_TABLE +
           " ORDER BY " + Constants.KEY_BRAND + " COLLATE NOCASE ASC;", null);
Run Code Online (Sandbox Code Playgroud)