Android sqlite запрос с несколькими где

Вот мой текущий 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)

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

Решение Вопроса

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

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 });
 Sam17 дек. 2018 г., 12:41
а что если мы ищем одно поле с тремя сходствами?

А ТАКЖЕ или жеИЛИ ЖЕ ключевое слово между каждым условием согласно вашему требованию. Так что попробуйте использовать это один раз.

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

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

(источник)

Запись

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

Ваш ответ на вопрос