Regexp_substr()函数等效于Android中的RoomDatabase

时间:2019-06-10 20:16:40

标签: android mysql android-room regexp-substr

我正在为一些朋友开发一个Android应用程序以记录个人信息。 我有一个带有一个表“ Records”的模拟数据库。它具有三个主要列,分别是: _date,小时和分钟。

我已经测试了该查询,并且可以在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中

我的数据库扩展了不支持regexp_substr()函数的RoomDatabase。

1 个答案:

答案 0 :(得分:0)

我已经解决了使用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;