SQLite random()行,但其中一行必须具有特定值?

时间:2015-06-30 15:02:17

标签: java android sqlite

所以,我正在开发一种测验游戏,游戏将在屏幕和4个按钮下面有一个问题,这将填充1个正确答案和3个错误答案。简单吧?我尝试使用以下rawQuery()来加载4个答案,除了必须出现的正确答案外,所有答案都必须是随机的。

SQLite的:

myCursor = db.rawQuery("SELECT * FROM Answers WHERE QuestionID = 3 ORDER BY RANDOM() LIMIT 4", null);

因此,QuestionID是指定正在显示哪个问题以加载正确答案的字段。我需要有很多答案,以便玩家无法记住它们。是这样的伪代码吗?

myCursor = db.rawQuery("SELECT * FROM Answers WHERE QuestionID = 3 ORDER BY RANDOM('WHERE RightWrong = 1 LIMIT 1') LIMIT 4", null);

RightWrong是一个字段,告诉它是否是正确答案(在DB内),它是一个INT,如果它被设置为1那么它就是正确的答案。

我在SQLite数据库浏览器中使用SQLiteAssetHelper。

1 个答案:

答案 0 :(得分:1)

我可能会尝试按照以下连接的方式进行查询。

e.Graphics.DrawImage(memoryImage, e.PageBounds);

有几点需要注意,首先这不是经过测试的查询,我并不是100%确定SQL语法是正确的,但它应该可以帮助您了解我的意思。此外,我相信这将始终将正确的答案作为返回的最后一个值,您将需要随机化在代码中的稍后位置。我希望这会有所帮助。

- EDIT-- 修复了查询,使其成为实际工作的