我在sqlite中有以下查询:
select * from Questions
where Subject = ? and Grade = ? and Level = ? and Used = ?
ORDER BY RANDOM()
LIMIT 1
PreparedStatement pst = gui.connectionQuestions.prepareStatement(sql);
pst.setString(1,gui.textSubjectQTest);
pst.setString(2,gui.showGradeLabel.getText());
pst.setString(3,gui.showCurrentLevelLabel.getText());
pst.setString(4,"1");
第4个值代表used
列。此列有3个值,如何返回used
字段的所有可能值的结果?
编辑:当我从数据库浏览器中删除字段编辑sqlite时,一切正常,但是当我从我的Java代码执行此操作时,我收到以下消息:
EDIT2:我也删除了//pst.setString(4,“1”);现在似乎工作正常。
java.lang.ArrayIndexOutOfBoundsException:3
答案 0 :(得分:1)
要获取Used
的所有值,只需移除where
的
select * from Questions
where Subject = ? and Grade = ? and Level = ?
ORDER BY RANDOM()
LIMIT 1
删除试图放入其中的Java的最后一行:
PreparedStatement pst = gui.connectionQuestions.prepareStatement(sql);
pst.setString(1,gui.textSubjectQTest);
pst.setString(2,gui.showGradeLabel.getText());
pst.setString(3,gui.showCurrentLevelLabel.getText());