1

我正在查询我的 SQLite 数据库以使用 IN 运算符获取记录

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 回答