Android SQLite COMMANDE PAR Ne fonctionne pas

J'ai une situation de base:

J'ai une table avec autour de 5k lignes:

CREATE TABLE "words" ("id" INTEGER PRIMARY KEY  AUTOINCREMENT  NOT NULL , "name" TEXT NOT NULL , "def" TEXT NOT NULL, "rand" INTEGER)

Qui je périodiquement mise à jour à l'aide de "mettre à JOUR les mots rand=random()"

Dans android, quand je crée un curseur à l'aide de rawQuery() en utilisant les suivantes:

SELECT w.id, w.name, w.def, w.rand FROM words w ORDER BY w.rand ASC;

Le retour du curseur ne sont pas parcourir dans l'ordre correct. E. g. il sera colonnes de sortie avec rand valeurs dans l'ordre suivant:

-1298882092
-2138143484
-1115732861
118839193
...

Personne ne sait ce qui se passe ici? Ne devrait-ce pas le travail? Si j'exécute exactement la même requête dans SQLiteManager il renvoie les résultats dans le bon ordre, il semble donc android/curseur spécifique.

Mise à JOUR:

Voici le code à android, j'ai essayé de plusieurs façons:

Tentative 1:

Cursor cursor = db.rawQuery("SELECT w.id, w.name, w.def, w.rand FROM words w ORDER BY w.rand ASC", new String[]{});

Tentative 2:

Cursor cursor = db.query("words", new String[]{"id", "name", "def", "rand"},
            null, null, null, null, "rand ASC");

Dans les deux cas je itérer comme suit:

while(cursor.moveToNext()) {
    ...
    Log.i("Test", cursor.getInt(3));
    ...
}
Pas sur Android, mais il semble fonctionner ici: ideone.com/GEnG3
Ouais, il travaille dans sqlitemanager ainsi donc, je pense que c'est android spécifique. Le cas réel a également 5k lignes et d'un index sur le rand colonne.
Pouvez-vous poster le code Android?
Ajouté le code dans la question.
Combien de fois avez-vous mise à jour le rand de la colonne? Êtes-vous sûr que ce n'est pas la source du problème?

OriginalL'auteur ghempton | 2011-01-30