我在assets文件夹中导入了一个数据库。当我调用nextQuestion()方法时,我需要从数据库中检索第一个条目。用户回答后,我需要再次加载nextQuestion()方法并从数据库中检索下一个条目。我尝试了这个,但它没有用,我总是只得到第一个条目:
String sql ="SELECT * FROM tblTable ORDER BY _ID ASC LIMIT 1";
还试过这个:
String sql ="SELECT * FROM tblTable ORDER BY _ID ASC";
答案 0 :(得分:0)
当然,你总是只获得第一个,你一遍又一遍地执行相同的查询。如果数据不是很大,请使用第二个查询。只执行一次并将所有行存储在内存中。您的nextQuestion()
方法不再需要进行数据库查询。
答案 1 :(得分:0)
我相信您需要使用第二个查询一次,捕获Resultset
,然后使用first
,next
直接遍历它,previous
等等,或者将它加载到一个循环中ArrayList
并使用它的方法。
答案 2 :(得分:0)
虽然效率不高,但您可以使用以下查询来获得下一个问题:
SELECT *
FROM
(
SELECT *
FROM
questions
ORDER BY ID ASC LIMIT :questionNumber
) ORDER BY ID DESC LIMIT 1
其中:questionNumber
是感兴趣的第n个问题。
答案 3 :(得分:0)
您真正想要的是ID最小的问题仍然比您之前的ID大:
SELECT *
FROM tblTable
WHERE _ID > ? -- insert previous ID here
ORDER BY _ID
LIMIT 1
答案 4 :(得分:0)
- >只执行String sql ="SELECT * FROM tblTable ORDER BY _ID ASC";
一次,
- >将数据保存在ArrayCollection中
- >创建全局变量,whichQuestion:Number; //保留你所处的问题
- >创建一个像
nextQuestion(whichQuestion:Number):String //pass which question you want to ask
{
return questionCollection[i];
}
- >那么问题+ = 1;
- >最后,只要你需要问题就调用nextQuestion()方法