0

我不太了解如何在单个查询中完成此操作。

问题:

我有一张这样的桌子

id| phonenumber| message| group_name| datetime 

示例数据

1 | 987654321 | "hi"    | G1 | xxxxxxx
2 | 987654321 | "hi"    | G1 | xxxxxxx
1 | 987145678 | "hello" | G2 | xxxxxxx

我想要做的是查询上面的 SqlLite 表,我需要以 . 的降序获取特定电话号码的所有行datetime。这样我就可以将它们放在我的 HashMap 中,键为 as group_name,值为 ArrayList messages

 HashMap<String, ArrayList<String>> mapper = new HashMap<>();

我正在使用 GreenDao 库从 SqlLite 获取数据,我尝试如下

    List<activity> activities = activityDao.queryBuilder().where(new WhereCondition.StringCondition(com.ficean.android.ficean.db.activityDao.Properties.Contact_number.eq(phonenumber) + "GROUP BY group_name")).orderDesc(com.ficean.android.ficean.db.activityDao.Properties.Date_time).build().list();

我设法使用GROUP BY但它没有列出所有行进行上述查询。我是否必须获取特定数字的所有数据并根据 group_name 将其分开遍历每一行?或者有什么更好的方法吗?

4

1 回答 1

0

SQL 非常简单,只有一个WHERE子句和一个ORDER BY.

SQL 如下所示:

select t.*
from t
where t.phone = ?
order by t.datetime desc;

我不确定这如何转化为您的 SQL 生成器,但它确实涉及删除GROUP BY.

于 2016-11-13T13:50:47.080 回答