Android SQLite列索引

Android SQLite列索引,android,sqlite,Android,Sqlite,我正在查询我的SQLite数据库,以获取使用IN运算符的记录 myDataBase.rawQuery("SELECT * FROM artist WHERE artist_id IN (?)", values); 但是我得到了一些SQLite异常。我不明白问题是什么 当我的数据库中有1条记录通过这个查询返回时,它是完美的,但是当我的数据库中有2条或更多记录通过这个查询返回时,它抛出了一些异常 这个例外是 SQLiteException: bind or column index out of

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

myDataBase.rawQuery("SELECT * FROM artist WHERE artist_id IN (?)", values);
但是我得到了一些SQLite异常。我不明白问题是什么 当我的数据库中有1条记录通过这个查询返回时,它是完美的,但是当我的数据库中有2条或更多记录通过这个查询返回时,它抛出了一些异常 这个例外是

SQLiteException: bind or column index out of range
请让我知道我在这个问题上做错了什么


谢谢…

我建议你喜欢这个

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);
StringBuilder查询=新建StringBuilder();
//生成“从艺术家id所在的艺术家处选择*”
append(“(”)。
对于(int i=0;i
我建议这样做

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);
StringBuilder查询=新建StringBuilder();
//生成“从艺术家id所在的艺术家处选择*”
append(“(”)。
对于(int i=0;i
我认为,中的
需要
带有“,”分隔符。对于
数组中的每个值,必须有一个单独的“?”。请看您的是对的@David Myour是对的@Chintan RathodI认为,
中的
要求
带有“,”分隔符。您必须为
数组中的每个值单独设置一个“?”。看你是对的@David Myour是对的@Chintan RathodThanks伙计我用同样的方法来解决这个问题:)谢谢伙计我用同样的方法来解决这个问题:)