SQLite
 sql >> Database >  >> RDS >> SQLite

SELEZIONA DISTINCT Android SQLite non funzionante

RISOLTO!

Quindi i metodi SQLiteQueryBuilder che restituiscono un cursore non consentono il Booleano parametro direttamente.

Tuttavia dopo aver letto le note di lezione ho notato il metodo setDistinct e applicato a SQLiteQueryBuilder.

Ora funziona e mi dà solo una voce univoca per ogni stato, proprio quello che stavo cercando di fare. Avevo bisogno di rimuovere le altre colonne e concentrarmi solo sullo stato, ma questo è un altro problema/soluzione non correlato a questa domanda. Basti dire che dovevo concentrarmi solo sullo stato della colonna e applicare il setDistinct a quella colonna solo per ottenere il risultato desiderato.

Ecco il codice completato:

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