我了解到,Android ICS(https://stackoverflow.com/questions/8837544/android-ics-sqlite-error)不再支持GROUP BY子句。有人知道该怎么用吗?我正在使用ContentProvider,而不是直接查询数据库。

这是一个示例查询,该查询曾经在低于ICS的Android版本上运行。任何想法如何重写它?

Cursor cursor = activity.getContentResolver().query(Data.CONTENT_URI, // from
    new String[] { StructuredPostal._ID, StructuredPostal.CITY, StructuredPostal.COUNTRY }, // select
    Data.MIMETYPE + "='" + StructuredPostal.CONTENT_ITEM_TYPE + "' AND "
    + StructuredPostal.CITY + " <> '' "  // where
    + ") GROUP BY (" + StructuredPostal.CITY
    , null, // args
    StructuredPostal.CITY + " ASC, " + StructuredPostal.COUNTRY + " ASC"); // sort by


编辑:错误是Caused by: android.database.sqlite.SQLiteException: near "GROUP": syntax error:...

最佳答案

适用于我的解决方案:Group By in ContentResolver in Ice Cream Sandwich

不是最优雅的,但是可以做到的。

10-08 02:47