1

IN演算子を使用してレコードを取得するためにSQLiteデータベースに問い合わせています

myDataBase.rawQuery("SELECT * FROM artist WHERE artist_id IN (?)", values);

しかし、SQLite例外が発生しています。データベースにこのクエリによって返されたレコードが 1 つある場合に何が問題なのか理解できませんでしたが、データベースにこのクエリによって返されるレコードが 2 つ以上ある場合、例外がスローされます。

SQLiteException: bind or column index out of range

このクエリで何が間違っているのか教えてください

ありがとう...

4

1 に答える 1

1

私はこのように提案します

StringBuilder query = new StringBuilder();
// build "SELECT * FROM artist WHERE artist_id IN "
query.append('(').
for (int i = 0; i < values.length; i++) {
    query.append(values[i]);
    if (i != values.length - 1) {
        query.append(',');
    }
}
query.append(')');

myDataBase.rawQuery(query.toString(), null);
于 2013-02-08T14:09:52.890 に答える