, в зависимости от сложности вашего условия, метод «delete» не будет лучшим решением.
например, если вы хотите удалить все записи, чей "_id" находится во второй таблице, как вы написали бы в transactSQL: "... WHERE _id IN (SELECT _id FROM ...", тогдаЛучшим решением может быть использование метода ".execSQL ()" непосредственно в вашей базе данных.
myDatabase.execSQL("DELETE FROM myTable WHERE _id IN (SELECT _id FROM myOtherTable)");
, или вы можете пойти ужасно и сделать что-то вроде:
int cursorRows = cursor.getCount();
String[] id2String = new String[cursorRows];
String id2StringUnique = "";
//for (int i=0;i<cursorRows;i++) {
int i=0;
for(cursor.moveToFirst(); !(cursor.isAfterLast()); cursor.moveToNext()){
id2String[i] = String.valueOf(cursor.getLong(index_ID));
if (i==0) {
id2StringUnique = "'"+id2String[i]+"'";
} else {
id2StringUnique += ",'"+id2String[i]+"'";
}
i++;
}
dbHelper.delete(DATABASE_TABLE_2, "_id IN (", id2StringUnique +")");
в зависимости отколичество элементов, у вас могут возникнуть проблемы с длиной / размером вашего аргумента - кроме того, он нелегален до крайности.