SQLite
 sql >> Datenbank >  >> RDS >> SQLite

SELECT DISTINCT Funktioniert nicht Android SQLite

GELÖST!

Daher lassen SQLiteQueryBuilder-Methoden, die einen Cursor zurückgeben, den Boolean nicht zu Parameter direkt.

Nach dem Lesen der Klassennotizen ist mir jedoch die Methode setDistinct aufgefallen und auf den SQLiteQueryBuilder angewendet.

Jetzt funktioniert es und gibt mir nur einen eindeutigen Eintrag für jeden Zustand, genau das, was ich versucht habe. Ich musste die anderen Spalten entfernen und mich nur auf den Zustand konzentrieren, aber das ist ein anderes Problem / eine andere Lösung, die nicht mit dieser Frage zusammenhängt. Es genügt zu sagen, dass ich mich nur auf den Spaltenstatus konzentrieren und setDistinct anwenden musste nur in diese Spalte, um das gewünschte Ergebnis zu erhalten.

Hier ist der fertige Code:

public Cursor getData(){
    SQLiteDatabase db = getReadableDatabase();
    SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
    String [] sqlSelect = {"0 _id", "state"};
    String sqlTables = "Reefs";
    qb.setTables(sqlTables);
    qb.setDistinct(true);
    Cursor c = qb.query(db, sqlSelect, null, null, null, null, null);
    c.moveToFirst();
    return c;
}