如何从表中的一列中选择不同的值?

时间:2011-09-13 14:07:20

标签: android sqlite

我正在Android中开发一个餐厅菜单应用程序。我的应用程序有一个数据库表,其中包含以下列:

  • id(主键)
  • 类别
  • 项目名称

类别列显示项目的类别,例如蔬菜,非蔬菜,零食等。它有重复的值,我想从此列中仅选择不同的值。我已尝试过以下方法,但如果有人能提供解决方案,则无效:

String query = "SELECT DISTINCT category FROM todo";

Cursor  cursor = database.rawQuery(query,null);
if (cursor != null) {
    cursor.moveToFirst();
}

return cursor; 

4 个答案:

答案 0 :(得分:11)

您还可以使用此特定查询 - SQLiteDatabase类的方法,该方法采用布尔值来确定是否需要不同的值:

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

这样您根本不必使用rawQuery。

答案 1 :(得分:6)

尝试:

"SELECT DISTINCT category as _id, category FROM todo"

在同样的情况下,这对我有用。

答案 2 :(得分:1)

这是我如何区分,也是为了获得类别

// 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;
}

答案 3 :(得分:0)

我正在寻找同样的问题,我以最简单的方式找到了直接解决方案的东西!看看这个答案:

https://stackoverflow.com/a/13879436/4072073