[英]Case insensitive GROUP BY query in SQLite
我試圖進行查詢並使按字段區分大小寫的結果分組。 這是我嘗試過的方法,但是不起作用。
group by之后的較低關鍵字沒有任何區別。
"SELECT " + MediaStore.Audio.Media.ARTIST + ", count(LOWER(" + MediaStore.Audio.Media.ARTIST +
")) FROM " + PlaylistDB.TABLE_ALL_TRACKS + " GROUP BY LOWER(" + MediaStore.Audio.Media.ARTIST
+") HAVING " + MediaStore.Audio.Media.ARTIST
+ " LIKE ? ORDER BY "+ MediaStore.Audio.Media.ARTIST + " COLLATE NOCASE ASC";
我也嘗試過COLLATE NOCASE。 也行不通。
"SELECT " + MediaStore.Audio.Media.ARTIST + ", count(LOWER(" + MediaStore.Audio.Media.ARTIST +
")) FROM " + PlaylistDB.TABLE_ALL_TRACKS + " GROUP BY LOWER(" + MediaStore.Audio.Media.ARTIST
+") HAVING " + MediaStore.Audio.Media.ARTIST
+ " LIKE ? ORDER BY "+ MediaStore.Audio.Media.ARTIST + " COLLATE NOCASE ASC";
您是否可以建議我進行不區分大小寫的分組?
我解決了這個問題。 Lower關鍵字可以與group by一起使用。 但是我的錯誤是某些字段的末尾有額外的空間。 因此,我使用trim關鍵字修復了它。 下面的代碼根據需要工作
"SELECT " + MediaStore.Audio.Media.ARTIST + ", count(LOWER(TRIM(" + MediaStore.Audio.Media.ARTIST +
"))) FROM " + PlaylistDB.TABLE_ALL_TRACKS + " GROUP BY LOWER(TRIM(" + MediaStore.Audio.Media.ARTIST
+")) HAVING " + MediaStore.Audio.Media.ARTIST
+ " LIKE ? ORDER BY "+ MediaStore.Audio.Media.ARTIST + " COLLATE NOCASE ASC";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.