我有一个非常基本的情况:
CREATE TABLE "words" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,"name" TEXT NOT NULL,"def" TEXT NOT NULL,"rand" INTEGER)
我使用“UPDATE words SET rand = random()”定期更新
在android中,当我使用rawQuery()使用以下内容创建游标时:
SELECT w.id,w.name,w.def,w.rand FROM words w ORDER BY w.rand ASC;
返回的游标不按正确的顺序迭代.例如.它将按以下顺序输出具有rand值的列:
-1298882092 -2138143484 -1115732861 118839193 ...
有谁知道这里发生了什么?这不应该工作吗?如果我在sqliteManager中运行完全相同的查询,它会以正确的顺序返回结果,所以这似乎是特定于android / cursor的.
更新:
尝试1:
Cursor cursor = db.rawQuery("SELECT w.id,w.rand FROM words w ORDER BY w.rand ASC",new String[]{});
尝试2:
Cursor cursor = db.query("words",new String[]{"id","name","def","rand"},null,"rand ASC");
在这两种情况下,我迭代如下:
while(cursor.movetoNext()) { ... Log.i("Test",cursor.getInt(3)); ... }
解决方法
原文地址:https://www.jb51.cc/android/314616.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。