SQLite
 sql >> Base de données >  >> RDS >> SQLite

SELECT DISTINCT Ne fonctionne pas sur Android SQLite

RÉSOLU !

Ainsi, les méthodes SQLiteQueryBuilder qui renvoient un curseur n'autorisent pas le booléen paramètre directement.

Cependant, après avoir lu les notes de cours, j'ai remarqué la méthode setDistinct et l'a appliqué à SQLiteQueryBuilder.

Maintenant, cela fonctionne et me donne une seule entrée unique pour chaque état, exactement ce que j'essayais de faire. J'avais besoin de supprimer les autres colonnes et de me concentrer uniquement sur l'état, mais c'est un autre problème/solution non lié à cette question. Qu'il suffise de dire que je devais me concentrer uniquement sur l'état de la colonne et appliquer le setDistinct à cette colonne uniquement pour obtenir le résultat souhaité.

Voici le code complété :

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