java - SQLite 中不区分大小写的 GROUP BY 查询

标签 java android 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";

关于java - SQLite 中不区分大小写的 GROUP BY 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37490915/

相关文章:

java - SQL 可在 PMA 上运行,但不能在 Java 上运行

android - Node.js - 结束错误后写入

database - 初始化对象或直接从数据库读取/写入数据库效率更高吗?

python - ImproperlyConfigured : SQLite 3. 需要 8.3 或更高版本(发现 3.7.17)

sql - 如何使用 DB Browser SQLite 在列中添加批量值

java - 从 java 调用 coldfusion 组件

java - Spring Data JPA中查询关键字Containing、IsContaining、Contains的区别

android - 保护 Dropbox 访问 token 的安全

java - 终止前清理缓冲区

android - 简单的 Android 相机应用程序 - 旋转导致 NullPointerException