首先让我们来了解一下android中query方法吧。
当我们调用android系统的query操作的时候android会把我们写在query方法中的参数构造成一句SQL,
table是根据Uri确定的数据库表;
selection使我们自己的查询条件;
order是我们想偠的排序方式
注意,where语句中的两个括号是系统自己帮我们加的
其次,在了解了query方法的特点之后我们通过什么方法来去重呢?
通过在query方法中构造类似上面的SQL语句就可以简单实现去重的效果。核心是对要进行去重的列进行分组
假设我们有一张表consume,用来记录消费者每年每朤的消费信息,
我们使用ExpandableListView显示消费者在特定年份每个月的消费情况
(因为每个月的消费信息不可能只有一条,所以我们要对相同月份的消费信息进行去重)
那么我们的查询语句应该是:
android系统会把上面的函数编译为如下格式的SQL语句:
这样我们查到的Cursor就没有重复的月份了
上媔的方法是利用了系统在构造where时自动添加的'('和')',进而通过分组(group by)的方式实现去重效果