4

这是我的查询:

// 表名:问题

          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子句中,但无法解决。

4

2 回答 2

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");
于 2012-08-04T20:52:08.747 回答
2

您收到此错误是因为“?”的数量 参数中的位置和数组长度不匹配。您可以像这样放置条件
1) 在 where 中使用两个条件

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");

于 2012-08-06T07:05:09.937 回答