Используете запрос комнаты для фильтрации нескольких элементов?Android

Форум для тех, кто программирует под Android
Anonymous
Используете запрос комнаты для фильтрации нескольких элементов?

Сообщение Anonymous »

Мне не удается получить запрос комнаты, чтобы разрешить запрос с несколькими подстановочными знаками к моей базе данных.

Код: Выделить всё

    @Query (
"""
SELECT * FROM sports
WHERE accountId = :accountId
AND title NOT LIKE (:filters)
ORDER BY date DESC
"""
)
fun queryForSports(
accountId: Int,
filters: Set,
)
Попытка сделать это не сработает, если я передам ему несколько элементов. Например, если я пройду только «%golf%», все будет работать нормально. Вот так...

Код: Выделить всё

var filters = listOf("%golf%").toSet()
sportDao.queryForSports(accountId, filters)
Но если я хочу отфильтровать несколько элементов, при обновлении списка он фильтрует все, и результаты не возвращаются.

Код: Выделить всё

var filters = listOf("%golf%", "%tennis%").toSet()
sportDao.queryForSports(accountId, filters)
Есть ли способ использовать подстановочный знак (%) для обозначения «НЕ НРАВИТСЯ» для нескольких элементов? Кажется, я не могу найти хороший способ сделать это. Я также попробовал использовать «НЕ В ( )», а не НЕ НРАВИТСЯ, и это вело себя так же, но неправильно.
Часто в таких ситуациях вы добавляли «ИЛИ», но из-за того, как структурирована эта комната, я не вижу какого-либо значимого способа сделать это, просто передав Set в качестве параметра функции queryForSports().

Подробнее здесь: https://stackoverflow.com/questions/791 ... iple-items

Вернуться в «Android»