我正在Android中开发一个餐厅菜单应用程序。我的应用程序有一个数据库表,其中包含以下列:
类别列显示项目的类别,例如蔬菜,非蔬菜,零食等。它有重复的值,我想从此列中仅选择不同的值。我已尝试过以下方法,但如果有人能提供解决方案,则无效:
String query = "SELECT DISTINCT category FROM todo";
Cursor cursor = database.rawQuery(query,null);
if (cursor != null) {
cursor.moveToFirst();
}
return cursor;
答案 0 :(得分:11)
您还可以使用此特定查询 - SQLiteDatabase类的方法,该方法采用布尔值来确定是否需要不同的值:
public Cursor query( boolean distinct ,String table,String [] columns,String selection,String [] selectionArgs,String groupBy,String having,String orderBy,String limit)
这样您根本不必使用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)
我正在寻找同样的问题,我以最简单的方式找到了直接解决方案的东西!看看这个答案: