通过ContentResolver.query,或AsyncQueryHandler中的startQuery方法如何加入SQLite中的GROUP BY语句

问题是这样的:
在项目中,需要从消息的数据库中得到每个联系人最新的消息,并且显示到界面上,类似于咱们手机上短信列表那样。那么,在诸多的消息中,如何得到每一个联系人对应的聊天记录呢?只要把每个人对应的聊天记录找到,就可以知道与这个联系人通信的最后一条聊天记录是哪个了。在SQL中,如果数据库中有联系人字段,那么我们就可以用GROUP BY来将属于同一联系人的消息都查询出来了。然而,我需要异步查询,或者通过ContentResolver对象来查询的话,要怎么写各个参数呢?

例如:在AsyncQueryHandler中,startQuery()方法的参数分别为:
int token: 令牌,和onQueryConplete一致;
Object cookies: 要携带的对象;
Uri uri: 要访问数据库的uri;
String[] projection: 要查询的字段集合;
String selection: 查询条件;
String[] selectionArgs: 匹配查询条件中的“?”;
String orderBy: 排序规则。

其中,我们一般是通过uri、selection和selectionArgs来限制查询数据库后要返回的数据的,selection在SQL中,是WHERE后面的语句。那如果我想要加上GROUP BY,要写到哪个参数里面呢?

代码中,我是这么实现的:
String where = “0==0) GROUP BY (“+……;
所以,只要加上“0==0)”,在其后面加上你想要实现的GROUP BY语句就可以啦~~
不过要注意括号哦~~~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值