sql осталось присоединиться, где рельсы

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

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

1
задан Joe Stefanelli 30 September 2010 в 21:10
поделиться