Android sqlite запрос с несколькими где - PullRequest
15 голосов
/ 30 января 2012

Вот мой текущий sqlite-код:

Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " + TABLE_RECIPE_NAME + 
                " where " + KEY_ownerID + " = ? ", new String[] { ownerID});

Он работает нормально, но когда я попытался добавить несколько, где-то вроде этого:

Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " + TABLE_RECIPE_NAME + 
                " where " + KEY_ownerID + " = ?, " + KEY_partnerID + " = ?, " + KEY_advertiserID + " = ?, " + KEY_chefID + " = ?", new String[] { ownerID, partnerID, advertiserID, chefID });

Возвращает ошибку.Так как мне справиться с несколькими?

Ответы [ 4 ]

41 голосов
/ 30 января 2012

изменить запрос на:

Cursor c = sqlDatabase.rawQuery("select docid as _id, recipeID from " +
TABLE_RECIPE_NAME + " where " + KEY_ownerID + " = ? AND " + KEY_partnerID +
" = ? AND  " + KEY_advertiserID + " = ? AND " + KEY_chefID + " = ?",
new String[] { ownerID, partnerID, advertiserID, chefID });
3 голосов
/ 24 октября 2016

Вы делаете правильно, но вам просто нужно использовать ключевое слово И или ИЛИ между каждым условием в соответствии с вашим требованием.Поэтому попробуйте использовать это один раз.

1 голос
/ 24 октября 2016

Используйте AND и OR для нескольких предложений WHERE. Используйте скобки, если требуется логическая группировка или порядок.

SELECT *
FROM employees
WHERE (last_name = 'Smith' AND first_name = 'Jane') OR (employee_id = 1); 

(источник)

Примечание

  • В этом дополнительном ответе пропущено форматирование кода Android, поскольку он затрудняет чтение и понимание SQL. Читатель может сделать свое собственное форматирование.
1 голос
/ 30 января 2012

Возможно, вы должны использовать AND. Вам нужен запрос, который должен возвращать значение в Cursor, заполненное сравнением нескольких значений. Итак, вам просто нужно использовать AND. Вместо использования comma(,). Приведенный выше ответ кажется правильным, но ему просто не хватает объяснения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...