Comment puis-je commander ma base de données SQLITE dans l'ordre décroissant, pour une application android?
Quelle est la méthode la plus efficace de montrer mes données dans l'ordre décroissant?
public String getRank() {
String[] rank = new String[]{ KEY_ROWID };
Cursor c = scoreDb.query(DATABASE_TABLE, rank, null, null, null, null, null); //reading information from db.
String rankResult = "";
int iRow = c.getColumnIndex(KEY_ROWID); //Cursor looking for column setting equal to these ints.
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
//Move to first row - where cursor starts and moves to next row as long it is not after last row.
rankResult = rankResult + c.getString(iRow) + "\n";
//Returning value of row that it is currently on.
}
return rankResult; //returning result
}
public String getName() {
String[] name = new String[]{ KEY_NAME };
Cursor c = scoreDb.query(DATABASE_TABLE, name, null, null, null, null, null); //reading information from db.
String nameResult = "";
int iRow1 = c.getColumnIndex(KEY_NAME); //Cursor looking for column setting equal to these ints.
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
//Move to first row - where cursor starts and moves to next row as long it is not after last row.
nameResult = nameResult + c.getString(iRow1) + "\n";
//Returning value of row that it is currently on.
}
return nameResult; //returning result
}
public String getScore() {
String[] score = new String[]{ KEY_SCORE };
Cursor c = scoreDb.query(DATABASE_TABLE, score, null, null, null,null, null); //reading information from db.
String scoreResult = "";
int iRow2 = c.getColumnIndex(KEY_SCORE); //Cursor looking for column setting equal to these ints.
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
//Move to first row - where cursor starts and moves to next row as long it is not after last row.
scoreResult = scoreResult + c.getString(iRow2) + "\n";
//Returning value of row that it is currently on.
}
return scoreResult; //returning result
}
Vous devez vous connecter pour publier un commentaire.
Requête a deux de la syntaxe, de la syntaxe que vous utilisez, la dernière colonne représente orderBy, vous avez juste besoin de spécifier sur quelle colonne que vous voulez faire orderBy +"ASC" (ou) orderBy +"DESC"
Reportez-vous cette de la documentation pour comprendre plus au sujet de
query()
méthode.Essayer cette
Selon docs:
et votre COMMANDE PAR param signifie:
Donc, votre requête sera:
C'est ma façon de lire le dossier de base de données pour l'affichage de la liste dans l'ordre décroissant. Déplacer le curseur à la dernière et de passer à l'enregistrement précédent après chaque enregistrement est récupéré. Espérons que cela aide~
cela fonctionne pour moi!!!
Cursor cursor = db.rawQuery("SELECT * FROM " + TABLE_CHAL + " ORDER BY date(" + KEY_FORMATTED_DATE + ") ASC", null);
oùKEY_FORMATTED_DATE
est dansYYYY-MM-DD
format mais cela ne fonctionne pas. stackoverflow.com/questions/40129782/...vous pouvez le faire avec ce
SQLite clause ORDER BY pour trier les données dans un ordre croissant ou décroissant, basé sur une ou plusieurs colonnes.
Cursor c = scoreDb.requête(DATABASE_TABLE, grade, null, null, null, null, yourColumn+" DESC");
Nous avons une option de plus pour faire la commande par
Vous pouvez utiliser ces deux méthodes pour l'ordre
Sur méthode efficace. Vous pouvez utiliser CursorLoader. Par exemple, j'ai inclus mon action. Et vous devez mettre en œuvre ContentProvider pour votre base de données. https://developer.android.com/reference/android/content/ContentProvider.html
Si vous mettez en œuvre la présente, vous vous appelez base de données très efficace.
Ce une chose terrible! Il en coûte mes quelques heures!
c'est mon lignes de la table :
HTML:
À chaque fois quand je l'ai mise à jour de la table , je vais mettre à jour le CURRENT_TIME pour le tri.
Mais j'ai trouvé que ce n'est pas un travail.Le résultat n'est pas triée ce que je veux.
Enfin, je trouve que la colonne "current_time" est la valeur par défaut de ligne de sqlite.
La solution est de renommer la colonne "cur_time" au lieu de "current_time".