如何使用一个选择列对多个选择参数使用查询

时间:2012-08-04 07:36:52

标签: android sqlite cursor

这是我的问题:

//表名:问题

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

2 个答案:

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