Java 如何控制id等于未知数量的变量sql查询?
我正在寻找这样的东西:Java 如何控制id等于未知数量的变量sql查询?,java,android,sql,sqlite,android-sqlite,Java,Android,Sql,Sqlite,Android Sqlite,我正在寻找这样的东西: String ID = ContactsContract.Contacts._ID; ContentResolver cR = context.getContentResolver(); Cursor cursor = cR.query(mUri, null, ID + " =?", mStringArray, null); mStringArray不明显,用户将分配其元素。所以我们不知道数组的长度和mStringArray有哪些元素。我想查询mStringArray的
String ID = ContactsContract.Contacts._ID;
ContentResolver cR = context.getContentResolver();
Cursor cursor = cR.query(mUri, null, ID + " =?", mStringArray, null);
mStringArray不明显,用户将分配其元素。所以我们不知道数组的长度和mStringArray有哪些元素。我想查询mStringArray的每个值。在这种情况下,我得到的错误是“IllegalArgumentException:无法在索引2(或3,4…)处绑定参数,因为索引超出范围。该语句有1个参数”
我希望我说得很清楚。而不是
=
您应该在中使用运算符,并使用与数组mstringaray
项一样多的?
占位符来构造语句:
String ID = ContactsContract.Contacts._ID;
ContentResolver cR = context.getContentResolver();
StringBuilder sb = new StringBuilder();
for (String s : mStringArray ) {
sb.append("?,");
}
String sqlIn = null;
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
sqlIn = ID + " IN (" + sb.toString() + ")";
}
Cursor cursor = cR.query(mUri, null, sqlIn, mStringArray, null);