Используете запрос комнаты для фильтрации нескольких элементов?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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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