How to select distinct values from one column in table?
I am developing a restaurant menu app in Android. My app has one database table which has the following columns:
- id (primary key)
- category
- item name
The category column shows the category of item such as veg, non veg, snacks etc. It has duplicate values and I want to select only distinct values from this column. I have tried the following but it is not working if anyone can provide a开发者_如何转开发 solution:
String query = "SELECT DISTINCT category FROM todo";
Cursor cursor = database.rawQuery(query,null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
You can also use this specific query-Method of the SQLiteDatabase class that takes a boolean value to determine whether you want distinct values or not:
public Cursor query (boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit)
Link to Android Reference
This way you don't have to use rawQuery at all.
Try:
"SELECT DISTINCT category as _id, category FROM todo"
This worked for me in the same situation.
This is how i make distinct, also to get categories
// Get Categories
public Cursor getCategories() {
Cursor c = db.rawQuery("SELECT DISTINCT " + KEY_ITEM_CAT + " as " + KEY_ITEM_ID
+ ", " + KEY_ITEM_CAT + " FROM " + ITEMS_TABLE_NAME, null);
if (c != null) {
c.moveToFirst();
}
return c;
}
I was searching for the same question, and I found something which is direct to the solution in the most simplest way! Check out this answer:
https://stackoverflow.com/a/13879436/4072073
精彩评论