我在互联网上搜索了很多,但找不到任何机制。
我的问题是关于MySQL动态查询的。我有一个这样的查询:
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT
CONCAT(
'SUM(CASE WHEN Status_Date = ''',
Status_Date,
''' then count_as_of_date else 0 end) AS `', Status_Date, '`' )
ORDER BY Status_Date ) INTO @sql
FROM finance_dashboard.dashboard_data;
现在,我想看看这个查询如何转换为实际的 SQL 查询。
MYSQL Workbench是否提供了任何工具,可以让我将动态查询查看为自然的SQL语句?
谢谢
最佳答案
您发布的内容不是动态查询(实际上,您似乎也存在一些语法错误)。
动态查询(通常称为DYNAMIC SQL)用于将查询动态地表达为字符串,然后告诉 DBMS 执行该字符串中包含的查询。
例如,假设您需要根据某些条件从 TABLE1 或 TABLE2 检索数据。您可以使用 IF ... THEN ... ELSE...
构造或使用适用的表名称构建字符串,然后使用 PREPARE
和 EXEC
命令。像这样的东西:
PREPARE Stat FROM 'SELECT * FROM ' + <tablename> + ' WHERE....' ;
然后:
EXECUTE Stat ;
注意:您还可以使用参数绑定(bind)。
检查this有关如何使用此类功能的详细信息。
关于MySQL:查看 SQL 格式的动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40734604/