Mentre si lavora su un progetto e alle prese con questa stessa domanda che ho trovato queste altre domande (e risposte) utile:
- Sqlite Query for multiple values in one columm
- Android/SQLite IN clause and placeholders
Ecco cosa Ho trovato dei lavori:
String[] args = new String[] {"A", "B"};
Cursor cur = db.query("tab1", null, "name in(?,?)", args, null, null, null);
come sarà:
String args = "A, B";
Cursor cur = db.query("tab1", null, "name in(" + args + ")", null, null, null, null);
Quindi è possibile un uso multiplo ?
con l'affermazione IN()
e abbinare ciascuno con un elemento in selectionArgs
array (come il primo esempio). Se si dispone di più condizioni nella vostra WHERE
clausola, assicurarsi che corrisponda al ?
con l'elemento corretto nel selectionArgs
:
String[] args = new String[] {"Current", "A", "B"};
Cursor cur = db.query("tab1", null, "IsCurrent=? AND name in(?,?)", args, null, null, null);
Oppure si può semplicemente utilizzare una stringa composta da argomenti virgole delineata direttamente nel IN()
dichiarazione nella stringa selection
stessa (come nel secondo esempio).
domande Il riferimento sembravano indicare che si potrebbe usare un singolo ?
nel IN()
e in qualche modo ampliare il parametro associato (s), ma non ero in grado di ottenere quello per funzionare.
possibile duplicato di [clausola Android AND SQLite e segnaposti] (http://stackoverflow.com/questions/7418849/android-sqlite-in-clause-and-placeholders) –