Wie wähle man verschiedene Werte aus einer Spalte in der Tabelle aus?

Ich entwickle eine Restaurant-Menü-App in Android. Meine App hat eine Datenbanktabelle mit folgenden Spalten:

  • ID (Primärschlüssel)
  • Kategorie
  • Artikelname

Die Kategorie Spalte zeigt die Kategorie der Artikel wie Gemüse, Non Veg, Snacks etc. Es hat doppelte Werte und ich möchte nur verschiedene Werte aus dieser Spalte auswählen. Ich habe das folgende ausprobiert, aber es funktioniert nicht, wenn jemand eine Lösung liefern kann:

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

  • Unterschied zwischen rawquery und execSQL in android sqlite Datenbank
  • Sqlite Plugin für Eclipse: Debug sqlite Datenbank auf Android Gerät live
  • Halten Sie die gleiche SQLite-Datenbank beim Upgrade und Android App von Lite zu Pro Version
  • SQLite Add Spalte, halten Daten
  • Android SQLite - Neue Tabelle VS. Neue DB
  • IN-Klausel und Platzhalter
  • Wie kann man die in der android Datenbank (SQLite) gespeicherten Daten anzeigen?
  • Android: ListView mit CheckBox, bevölkert von SQLite-Datenbank nicht ganz funktioniert
  • 4 Solutions collect form web for “Wie wähle man verschiedene Werte aus einer Spalte in der Tabelle aus?”

    Sie können diese spezielle Abfrage-Methode der SQLiteDatabase-Klasse auch verwenden, die einen booleschen Wert annimmt, um festzustellen, ob Sie unterschiedliche Werte wünschen oder nicht:

    Public Cursor query ( boolean distinct , String table, String [] Spalten, String Auswahl, String [] selectionArgs, String groupBy, String mit, String orderBy, String Limit)

    Link zu Android Referenz

    Auf diese Weise müssen Sie überhaupt keine rawQuery verwenden.

    Versuchen:

     "SELECT DISTINCT category as _id, category FROM todo" 

    Das hat für mich in der gleichen Situation gearbeitet.

    Dies ist, wie ich deutlich unterscheide, auch um Kategorien zu bekommen

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

    Ich suchte die gleiche Frage, und ich fand etwas, das direkt auf die Lösung auf die einfachste Weise ist! Schauen Sie sich diese Antwort an:

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

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.