l'ajout de mot-clé DISTINCT à la requête() avec SQLite sous Android
la différence entre query() et rawQuery() dans SQLite, lors de la prise de plus complexe des requêtes SQL.
par exemple
je veux utiliser le mot clé SQL DISTINCTES, de sorte que je ne pas faire de doublons retourné à partir de la base de données.
je comprends comment utiliser rawQuery() la méthode, de cette façon, vous pouvez mettre une réelle instruction de requête SQL dans la méthode. de cette façon, je peux faire un standard de l'instruction SQL avec rawQuery. il serait facile d'ajouter le mot clé DISTINCT pour n'importe quelle instruction SQL lors de l'utilisation de rawQuery()
cependant, lors de l'utilisation de la méthode query (), comme illustré ici dans ce code, je ne peux pas utiliser les instructions SQL. dans ce cas, comment pourrais-je faire une requête avec le mot-clé DISTINCT dans le cadre de la requête? ou quelque chose avec les mêmes fonctionnalités?
// get info from country table
public String[] getCountries(int numberOfRows) {
String[] columns = new String[]{COUNTRY_NAME};
String[] countries = new String[numberOfRows];
int counter = 0;
Cursor cursor = sqLiteDatabase.query(COUNTRY_TABLE, columns,
null, null, null, null, null);
if (cursor != null){
while(cursor.moveToNext()){
countries[counter++] = cursor.getString(cursor.getColumnIndex(COUNTRY_NAME));
}
}
return countries;
}
OriginalL'auteur Kevik | 2013-07-23
Vous devez vous connecter pour publier un commentaire.
Au lieu de la...
...la méthode que vous utilisez, il suffit d'utiliser la...
...la surcharge et de l'ensemble
distinct
àtrue
.Android docs semblent un peu difficile de lien direct, mais la page de doc décrivant à la fois est ici.
OriginalL'auteur Joachim Isaksson
vous pouvez utiliser ceci,
Ici en premier paramètre est utilisé pour définir la valeur DISTINCTE j'.e si défini à true, il retournera la valeur de colonne distincte.
et sixième paramètre indique le nom de colonne dont vous souhaitez
GROUP BY
.GROUP BY
, ce qui est très différent d'unDISTINCT
requête qui trouve des lignes distinctes.ok....mise à jour de ma réponse...merci
OriginalL'auteur dd619
Vous devez utiliser une autre fonction de REQUÊTE avec les premières DISTINCTES paramètre booléen TRUE
public Curseur de la requête (boolean distinctes, Chaîne de table,...)
OriginalL'auteur valex
c'est la fonction que j'utilise dans mon application pour obtenir district nom à partir d'une table de groupe espère vous faire une idée ,jetez un oeil à elle.seulement les valeurs distinctes seront récupérées si la colonne contient les mêmes noms
OriginalL'auteur Ameen Maheen