我坐在这里想知道如何在不区分大小写的情况下对我的数据库进行排序。
假设我有“A”、“a”、“B”、“b”。它会像这样打印:'A'、'B'、'a'、'b'。但我希望它以更人性化的方式排序。
这是我的光标功能:
/**
* 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);
}
我注意到 Java 有
CASE_INSENSITIVE_ORDER
,但如果这是解决此问题的方法,我不知道如何实现它。有人可以帮我解决这个问题吗?
最佳答案
有人回答 here 。
不幸的是,您似乎必须使用 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);
关于android - 返回不区分大小写的 sqlite DB,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10874084/