如何控制id等于未知数的变量sql查询?

How to control where id is equal to unknown number of variable sql query?

我正在寻找类似的东西:

String ID = ContactsContract.Contacts._ID;
ContentResolver cR = context.getContentResolver();
Cursor cursor = cR.query(mUri, null, ID + " =?", mStringArray, null);

mStringArray 不明显,用户会为其元素赋值。所以我们不知道数组的长度是多少,mStringArray 有哪些元素。我想查询 mStringArray 的每个值。在那种情况下,我收到一个错误 "IllegalArgumentException: Cannot bind argument at index 2(or 3,4,...) because the index is out of range. The statement has 1 parameters"。

希望我说清楚了。

而不是 = 您应该使用运算符 IN 并使用与数组 mStringArray:[=15 的项目一样多的 ? 占位符构造语句=]

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