如何仅使用不同的值获取游标?

时间:2012-01-09 11:05:03

标签: android sqlite cursor distinct-values

我想仅使用不同的列值返回游标。 “组”列包含更多项目,但只有2个值:1,2,1,1,1,2,2,1,1

String[] FROM = {Groups,_ID};

public Cursor getGroups(){
//......
return db.query(TABLE_NAME,FROM,null,null,null,null,null);
}

将返回一个包含{1,2,1,1,1,2,2,2,1}的游标,但我想只包含{1,2}。

4 个答案:

答案 0 :(得分:8)

你可以有这样的SQL查询,

public Cursor usingDistinct(String column_name) {
        return db.rawQuery("select DISTINCT "+column_name+" from "+TBL_NAME, null);
    }

答案 1 :(得分:5)

你可以在进行这样的查询时使用distinct参数:

public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)

请更好地遵循此doc

答案 2 :(得分:0)

您可以使用以下示例查询,因为您必须为不同的

指定列名
Cursor cursor = db.query(true, YOUR_TABLE_NAME, new String[] { COLUMN_NAME_1 ,COLUMN_NAME_2, COLUMN_NAME_3 }, null, null, COLUMN_NAME_2, null, null, null);

COLUMN_NAME_2 - 不同列的名称。

记得添加GROUP BY列名

答案 3 :(得分:0)

在不同的参数中使用布尔值 true ,例如:

public Cursor query (**true**, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);