как использовать оператор IN sqlite в android [duplicate]

7
задан PeterMmm 30 April 2013 в 09:30
поделиться

3 ответа

String[] args = new String[]{A,B} // if A, B are variables
String[] args = new String[]{"A","B"}    
Cursor cur = db.query("tab1", null, "name in (?,?)", args, null, null, null);  
4
ответ дан Lion789 25 August 2018 в 04:52
поделиться

Работая над проектом и борясь с этим самым вопросом, я нашел эти другие вопросы (и ответы) полезными:

  1. Sqlite Query для нескольких значений в одном columm
  2. Предложение Android и SQLite IN и заполнители

Вот что я нашел:

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() ] и каким-то образом расширить связанный параметр (ы), но я не смог заставить это работать.

4
ответ дан Community 25 August 2018 в 04:52
поделиться

Если я не ошибаюсь, аргумент parsing не работает с предложением IN. Таким образом, вы не можете использовать '?' в вашем предложении WHERE.

Вы должны сделать что-то вроде этого:

String args = "A, B";
Cursor cur = db.query("tab1", null, "name in (" + args + ")", null, null, null, null);

и построить ваши аргументы с петлей, если необходимо.

0
ответ дан Vincent 25 August 2018 в 04:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: