Home » Android » select distinct value in android sqlite

select distinct value in android sqlite

Posted by: admin April 23, 2020 Leave a comment

Questions:

I try to run the following raw query in android, it seems not work

String query ="SELECT DISTINCT category FROM event";
Cursor  cursor = mDb.rawQuery(query, null);
if (cursor != null) {
     cursor.moveToFirst();
}
return cursor; 

so I decide to use the query() method in android which are something like

Cursor mCursor = mDb.query(EVENT_TABLE, new String[] {KEY_ROWID, KEY_CAT}, null, null,null,null, null)

Can anyone show me how to select the distinct category for using query() instead of rawquery please, any help will be greatly appreciated!

How to&Answers:

You can use this method:

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

Here first argument specifies whether to use distinct or not.

Answer:

But you MUST remember to send argument in GROUPBY (NOT NULL send).

You must give column name for distinct.

Example:

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);

true – distinct TRUE

COLUMN_NAME_2 – name column what you have be DISTINCT.

That’s works for me fine.

Answer:

There are multiple ways, as already green ticked. But if somebody is looking to get it via raw query then here you go:

String query = "SELECT DISTINCT(category) FROM event";

Answer:

Cursor res=db.rawQuery("select column1 column2...  Distinct column3 from "+Table_name, null);

column3 is a distinct column