Функция Regexp_substr () Эквивалент для RoomDatabase в Android - PullRequest
1 голос
/ 10 июня 2019

Я разрабатываю приложение для Android для друзей, чтобы записывать личную информацию. У меня есть макет базы данных с одной таблицей «Записи». Он имеет три основных столбца: _дата, часы и минуты.

Я проверил этот запрос, и он отлично работает с базой данных MySQL Mock.

WITH 
  temp_dates AS (SELECT *, regexp_substr(_date, '\\.[0-9]*-[0-9]+') AS _dates FROM Records WHERE _date BETWEEN '2018-06-10' AND '2019-06-30')
SELECT
  _dates,
  SUM(hours) AS Hours, 
  SUM(mins) AS Mins
FROM 
  temp_dates
WHERE 
  temp_dates._dates LIKE regexp_substr(temp_dates._dates, '\\.[0-9]*-[0-9]+') 
  GROUP BY temp_dates._dates ORDER BY _dates ASC;

Мне нужно реализовать эту часть:

regexp_substr(_date, '\\.[0-9]*-[0-9]+') AS _dates 

в RoomDatabase @Query.

Моя база данных расширяет RoomDatabase, которая не поддерживает функцию regexp_substr ().

1 Ответ

0 голосов
/ 11 июня 2019

Я решил использовать функцию substr (x, y, z) и некоторые улучшения:

WITH 
  temp_dates AS (SELECT *, substr(_date, 1, 7) AS _dates FROM Records WHERE _date BETWEEN '2018-06-10' AND '2019-06-30')
SELECT
  _dates,
  SUM(hours) AS Hours, 
  SUM(mins) AS Mins
FROM 
  temp_dates

GROUP BY 

  temp_dates._dates

ORDER BY _dates ASC;

...