Während an einem Projekt arbeiten und mit dieser sehr gleichen Frage zu kämpfen, fand ich diese Fragen (und Antworten) hilfreich:
- Sqlite Query for multiple values in one columm
- Android/SQLite IN clause and placeholders
Hier ist, was Ich habe gefunden:
String[] args = new String[] {"A", "B"};
Cursor cur = db.query("tab1", null, "name in(?,?)", args, null, null, null);
Wie wird:
String args = "A, B";
Cursor cur = db.query("tab1", null, "name in(" + args + ")", null, null, null, null);
So können Sie entweder mehrere ?
mit der IN()
Anweisung und jeder in selectionArgs
Array mit einem Element entsprechen (wie das erste Beispiel). Wenn Sie mehrere Bedingungen in Ihrer WHERE
Klausel haben, stellen Sie sicher, dass in selectionArgs
die ?
mit dem richtigen Elemente entsprechen:
String[] args = new String[] {"Current", "A", "B"};
Cursor cur = db.query("tab1", null, "IsCurrent=? AND name in(?,?)", args, null, null, null);
Oder Sie können eine Zeichenfolge nur direkt aus durch Komma abgegrenzte Argumente bedienen in den IN()
Anweisung in der selection
Zeichenfolge selbst (wie im zweiten Beispiel).
Die referenzierte Fragen schien darauf hinzudeuten, dass Sie eine einzelne ?
im IN()
verwenden könnte und irgendwie erweitern Sie die zugehörigen Parameter (s), aber ich war nicht in der Lage, dass die Arbeit.
möglich Duplikat von [Android/SQLite IN-Klausel und Platzhalter] (http://stackoverflow.com/questions/7418849/android-sqlite-in-clause-and-placeholders) –