这是我的问题:
//表名:问题
Cursor cursor = db.query("QUESTION", new String[] { "TEXT", "OPTION_A",
"OPTION_B", "OPTION_C", "OPTION_D", "OPTION_E",
"RIGHT_ANSWER" },
"SUBJECT=?", new String[] { "Ingles", "Historia" }, null,null,
null);
我可以有多个科目,现在我只有两个科目(英格尔斯,历史)
如何使用查询按主题对数据进行排序?
我遇到绑定或超出范围错误。我知道错误在 where 子句的某处,但无法解决。
答案 0 :(得分:4)
我得到了答案。
1)要对数据进行排序,需要在最后一个参数中输入列名
2)当一列中有多个选择条件时,请使用IN Operator
。
Cursor cursor = db.query("QUESTION", new String[] { "TEXT", "OPTION_A",
"OPTION_B", "OPTION_C", "OPTION_D", "OPTION_E",
"RIGHT_ANSWER" },
"SUBJECT IN(?,?)", new String[] { "Ingles", "Historia" }, null,null,
"SUBJECT");
答案 1 :(得分:2)
您收到此错误的原因是“?”在哪里和参数中的数组长度不匹配。你可以像这样的条件
1)在其中使用两个条件
Cursor cursor = db.query("QUESTION", new String[] { "TEXT", "OPTION_A", "OPTION_B", "OPTION_C", "OPTION_D", "OPTION_E", "RIGHT_ANSWER" }, "SUBJECT1=? AND SUBJECT2=? ", new String[] { "Ingles", "Historia" }, null,null, "SUBJECT");
2)使用IN条件Cursor cursor = db.query("QUESTION", new String[] { "TEXT", "OPTION_A", "OPTION_B", "OPTION_C", "OPTION_D", "OPTION_E", "RIGHT_ANSWER" }, "SUBJECT IN(?)", new String[] { "Ingles,Historia" }, null,null, "SUBJECT");