如何获得在grafana中工作的MySQL/MariaDB用户定义变量?
使用MariaDB 5.5(我们的星号cdr数据库)并尝试根据数据库中的现有数据按日期构建时间序列,但希望加入到所有日期的列中,以说明没有数据的天数。下面的查询(简化)在MySQL Workbench中工作,以获取过去180天内所有日期的列表,但在grafana中我得到一个语法错误如何获得在grafana中工作的MySQL/MariaDB用户定义变量?,mysql,mariadb,grafana,user-variables,Mysql,Mariadb,Grafana,User Variables,使用MariaDB 5.5(我们的星号cdr数据库)并尝试根据数据库中的现有数据按日期构建时间序列,但希望加入到所有日期的列中,以说明没有数据的天数。下面的查询(简化)在MySQL Workbench中工作,以获取过去180天内所有日期的列表,但在grafana中我得到一个语法错误 SET @i = -1; SELECT DATE(DATE_ADD(DATE_ADD(CURRENT_DATE(), INTERVAL -180 DAY), INTERVAL @i:=@i+1 DAY)) AS d
SET @i = -1;
SELECT DATE(DATE_ADD(DATE_ADD(CURRENT_DATE(), INTERVAL -180 DAY), INTERVAL @i:=@i+1 DAY)) AS date
FROM queuestats
HAVING
@i < DATEDIFF(CURRENT_DATE(), DATE_ADD(CURRENT_DATE(), INTERVAL -180 DAY))
;
有人知道为什么grafana不喜欢SET关键字吗?或者如何在不使用变量的情况下获取两个日期之间的日期列表
提前感谢。由于安全原因(主要是SQL注入),默认情况下,MariaDB(以及MySQL)不接受以分号分隔的多个语句,除非您明确启用此选项(在C-API中,您可以通过设置CLIENT\u MULTI\u STATEMENTS
标志来实现这一点,在PHP/mysqli中,有一个单独的API调用mysqli\u MULTI\u query()
)-但是我不知道Grafana是否有支持多个语句的选项。由于默认情况下的安全原因(主要是SQL注入)(还有MySQL)除非明确启用此选项,否则不接受以分号分隔的多个语句(在C-API中,可以通过设置CLIENT\u MULTI\u statements
标志来实现,在PHP/mysqli中,有一个单独的API调用mysqli\u MULTI\u query()
)-但是我不知道Grafana是否有支持多个语句的选项
SET @i = -1;
SELECT CURRENT_DATE() AS time;