How to get a cursor with distinct values only?

旧巷老猫 提交于 2019-11-28 08:43:12

问题


I want to return a cursor only with distinct values of a column. The column 'Groups' has more items but with only 2 values: 1,2,1,1,1,2,2,2,1

String[] FROM = {Groups,_ID};

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

will return a cursor containing {1,2,1,1,1,2,2,2,1} but I would like to contain just {1,2}.


回答1:


You can have an sql query like this,

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



回答2:


you can use distinct argument while making query like this:

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

Follow this doc for more clearity.




回答3:


You can use below example query, as you have to give column name for distinct

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 - name of the column for distinct.

remember to add GROUP BY column names




回答4:


Use boolean true iin the distinct argument, For example :

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


来源:https://stackoverflow.com/questions/8787413/how-to-get-a-cursor-with-distinct-values-only

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!