返回sqlite查询的结果

时间:2016-07-04 17:11:42

标签: sql sqlite

我在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

1 个答案:

答案 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());