Android的SimpleCursorAdapter,使用DISTINCT查询

前端之家收集整理的这篇文章主要介绍了Android的SimpleCursorAdapter,使用DISTINCT查询前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个有趣的问题,我很震惊,没有在互联网上更频繁地被问到.一旦您获得ContentProvider并运行并学习如何使用它,Android的CursorAdapters就非常有用,但是由于需要将_id字段作为查询的一部分(无错误的抛出)将会受到限制.这就是为什么:

我的具体问题是我有两个旋转器:一个微调器应该包含来自数据库的唯一的“类别”名称,另一个应该从所选的“类别”(类别为列名称,在这里)填充所有数据库条目.这似乎是一个非常简单的设置,许多程序可能使用,不?试图实现第一个微调器是我遇到问题的地方.

这是我想要的第一个微调器的查询

SELECT DISTINCT category FROM table;

使此查询在CursorAdapter上引发错误,因为_id列是查询的一部分.将_id列添加到投影自然会返回表的每一行,因为您现在也要求不同的id,并且每个id都是不同的(根据定义).显然我宁愿看到每个类别名称只有一个条目.

我已经实现了一个工作,这是为了简单地做上面的查询,然后将结果复制到一个ArrayAdapter.我的这个帖子的原因是看看是否有一个更优雅的解决方案,这个奇怪的小问题,并开始讨论我可以做得更好.非常受欢迎的其他实施建议,如使用不同类型的控件或适配器.

解决方法

这是我最后得到的查询
SELECT _id,category FROM table_name GROUP BY category;

我在sqliteDatabase对象上使用了rawQuery()函数来执行此操作. “GROUP BY”是获得正确结果的关键,所以感谢用户Sagar指出我正确的方向.

考虑用户Al Sutton的这个问题的答案,因为它可能是一个更优雅的解决这个问题.

感谢大家!

猜你在找的Android相关文章