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

私は複数の科目を持つことができますが、現在私は2つの科目しか持っていません(Ingles、Historia)

クエリを使用してサブジェクトごとにデータを並べ替える方法は??

バインドまたは範囲外のエラーが発生します。エラーがwhere句のどこかにあることは知っていますが、それを解決することはできません。

4

2 に答える 2

4

私は答えを得ました。

1)データを並べ替えるには、最後の引数に列名を入力する必要があります

2)1列で複数選択条件が利用できる場合は、を使用して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

「?」の数が原因でこのエラーが発生します whereと引数の配列の長さが一致しません。このような条件を置くことができます
1)ここで2つの条件を使用します

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 に答える