4

我需要能够在表名中使用变量——我基本上有一组用于不同类型数据的表,所以我希望只有一个仪表板并在所有类型之间进行交换,而不是总是必须设置多个相同的仪表板。

我的查询类似于:

select * from table_$variable_name;

我的可能变量列表类似于猫、狗、鸟

我似乎可以完成这项工作,如果我只将变量如上所示,我会收到以下错误

Error 1146: Table 'table_$variable_name' doesn't exist

如果我将它括在大括号中,则会收到此错误。

Error 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '{bird}' at line 1

(即这次选择的变量实际上是可见的)

我不确定问题是否在表名中有下划线,我也尝试在我的变量周围加上下划线来检查,但我没有运气。

我尝试的另一件事是逐渐添加到表名,所以 eg select * from table_$variable; 仍然返回错误,但我可以看到表名开始正确形成 Error 1146: Table 'table_bird_' doesn't exist

但是,一旦我添加另一个下划线,变量就不再被拾取```错误1146:表'table_$variable_'不存在``

我敢肯定,我在查询的语法中遗漏了一些愚蠢的东西——有人有什么建议吗?

使用此https://grafana.com/docs/grafana/latest/variables/templates-and-variables/供参考

4

1 回答 1

2

正如@arturomp 建议的那样, ${var:raw} 至少在我的情况下,这是有效的解决方案。

于 2021-02-26T16:29:45.880 回答