开发者

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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜