SQLite查询以不区分大小写的字母顺序

我想要做的就是按照字母顺序来抓东西,而忽略大写字母。

db.rawQuery("SELECT " + catName + " FROM "+tableName+" ORDER BY "+catName+" ASC COLLATE NOCASE;", null); 

这是我上面使用的代码,但它总是给我一个SQLiteexception,说COLLATE是一个语法错误。

android.database.sqlite.SQLiteException:在“COLLATE”附近:语法错误:在编译时:SELECT Artist FROM testTable COLLATE NOCASE ASC

COLLATE在订单方向之前:

 db.rawQuery("SELECT " + catName + " FROM " +tableName +" ORDER BY "+catName+" COLLATE NOCASE ASC;", null); 

但是你不需要ASC – 这是默认的,所以你可以使用:

 db.rawQuery("SELECT "+ catName +" FROM "+ tableName +" ORDER BY "+ catName +" COLLATE NOCASE;", null); 

在orderBy String之后添加COLLATE NOCASE。

db.query(table,columns,selection,selectionArgs,groupBy,having,orderBy +“COLLATE NOCASE ASC”);

在这里,ASC或DESC的订单取决于您的需要。

这也应该工作我认为:

 db.rawQuery("SELECT "+ catName +" FROM "+ tableName +" ORDER BY lower("+ catName +");", null);