База данных комнат - Запрос с обработкой строк - PullRequest
0 голосов
/ 20 февраля 2019

Мне нужно сделать выборочный запрос с Android Room.У меня есть таблица с 3 столбцами: «id», «pathOfFile», «rank» «pathOfFile» похож на «file: ///path/to/file.png»

Я хочу выбрать всепуть с фамилией файла, равной «file.png»

Я пишу это

SELECT  pathOfFile  
FROM FilePaths   
WHERE replace(pathOfFile, rtrim(pathOfFile, replace(pathOfFile, '/', '')), '') in ("file.png", ....)   
ORDER BY rank

Если я выполню этот запрос на SqliteBrowser на моем ПК, я неу меня нет проблемКогда я пишу

@Query(SELECT  pathOfFile FROM FilePaths  WHERE replace(pathOfFile, rtrim(pathOfFile, replace(pathOfFile, '/', '')), '') in (:filePaths)  ORDER BY rank

Android Studio, после ключевого слова WHERE выдается сообщение об ошибке "ожидается, получено" заменить ".

Как я могу сделать запрос к БД следующим образом?

Ответы [ 2 ]

0 голосов
/ 20 февраля 2019

Хорошо, я нашел проблему.Кажется, это ошибка редактора android studio.

Редактор выдает ошибку в ключевом слове "replace", но когда я нажимаю "Run", сборка завершается успешно.

0 голосов
/ 20 февраля 2019

Можете ли вы упростить его до этого запроса помещения?

SELECT pathOfFile  
FROM FilePaths   
WHERE pathOfFile LIKE :filePath
ORDER BY rank

... где параметр filePath передается как "%" + actualFilePathEnding

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