これは単一クエリでどのように行うことができるのか分かりません。レコードをクエリしてSQLiteからグループ化するテーブル
問題:
私は私が何をしたいのか、この
id| phonenumber| message| group_name| datetime
例データ
1 | 987654321 | "hi" | G1 | xxxxxxx
2 | 987654321 | "hi" | G1 | xxxxxxx
1 | 987145678 | "hello" | G2 | xxxxxxx
のようなテーブルを持っているが、私は必要とするような方法で上記SqlLiteテーブルをクエリであります特定の電話番号のすべての行をdatetime
の降順で取得します。私はキーをgroup_name
として、ArrayListとしての値をmessages
としてHashMapに入れることができます。私はSqlLiteからデータをフェッチするためにGreenDaoライブラリを使用しています
HashMap<String, ArrayList<String>> mapper = new HashMap<>();
は、私がGROUP BY
を使用してクエリの上に行うために管理
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();
下回るようにしようとしたが、すべてのrows.Doは、私が取得する必要がリストアップされていません特定の番号のすべてのデータと、group_nameに基づいて各行をループして区切っていますか?またはもっと良い方法がありますか?
なぜこのHashMapが必要ですか?すべてのデータベースをメモリに保存したいと思うように見えます... – lovasoa