Во время работы над проектом и борется с этим тот же вопрос, который я нашел эти и другие вопросы (и ответы) полезные:
- Sqlite Query for multiple values in one columm
- Android/SQLite IN clause and placeholders
Вот что Я нашел работы:
String[] args = new String[] {"A", "B"};
Cursor cur = db.query("tab1", null, "name in(?,?)", args, null, null, null);
Как будет:
String args = "A, B";
Cursor cur = db.query("tab1", null, "name in(" + args + ")", null, null, null, null);
Таким образом, вы можете использовать несколько ?
с IN()
заявление и соответствуют друг с элементом в selectionArgs
массива (как в первом примере). Если у вас есть несколько условий в вашем предложении WHERE
, убедитесь, что в соответствии с ?
с правильным элементом в selectionArgs
:
String[] args = new String[] {"Current", "A", "B"};
Cursor cur = db.query("tab1", null, "IsCurrent=? AND name in(?,?)", args, null, null, null);
Или вы можете просто использовать строку, состоящую из запятой очерчены аргументов непосредственно в IN()
в строке selection
(как и второй пример).
ссылочного вопросы, казалось, показывают, что вы можете использовать один ?
в IN()
и каким-то образом расширить соответствующий параметр (ы), но я не смог получить, чтобы работать.
Возможный дубликат [Android и SQLite IN clause and placeholders] (http://stackoverflow.com/questions/7418849/android-sqlite-in-clause-and-placeholders) –