SQLite Not Display重复并计算行的公共值出现的次数

时间:2018-01-25 21:34:31

标签: android mysql sqlite

在我的Android应用程序中,我的花有一个名为location的列,用于存储它们所在的城市。在我的列表视图中,当我返回不同的城市时,我会收到包含城市位置的每个花的单独行。相反,我想检查是否有重复,以便我只有一行显示"洛杉矶"而不是4.然后我希望能够得出特定城市在列中显示为值的次数,以便我可以显示它的次数(在这种情况下,这个城市中的鲜花数量)在textview中。

我使用光标抓取我正在使用的数据,但不知道如何在Android,SQlite界面中制作此类命令。

下面是我的光标定义

public Loader<Cursor> onCreateLoader(int id, Bundle args) {
    switch (id) {
        case LOADER_ID:
            return new CursorLoader(
                    getContext(),
                    DatabaseDescription.Flower.CONTENT_URI,
                    FROM_COLUMNS,
                    COLUMN_LOCATION + "<> ''",
                    null,
                    COLUMN_LOCATION + " ASC"
            );
        default:
            if (BuildConfig.DEBUG)
                throw new IllegalArgumentException("no id handled!");
            return null;
    }
}

我怀疑你需要看到我的适配器,因为Cursor负责我收到的内容。最重要的是知道如何不显示重复项以及如何计算特定列中具有相同值的行数。感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

你有两件事要做。您可能需要执行两次查询。

要在每个城市只获得一次行,您可以使用列上的DISTINCT关键字作为城市名称。

要获取城市的行数,您可以从为查询返回的光标中获取光标大小。