我在互联网上搜索过很多内容,但找不到任何机制。
我的问题是关于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工作台是否提供了任何工具,可以让我将动态查询查看到自然的SQL语句中?
由于
答案 0 :(得分:0)
您发布的内容是不一个动态查询(实际上,它看起来也有一些语法错误)。
动态查询(通常称为 DYNAMIC SQL )用于将查询动态地表示为字符串,然后告诉DBMS执行该字符串中包含的查询。
例如,假设您需要根据某些条件从TABLE1或TABLE2中检索数据。您可以使用和IF ... THEN ... ELSE...
使用适用的表名构造或构建字符串,然后使用PREPARE
和EXEC
命令。类似的东西:
PREPARE Stat FROM 'SELECT * FROM ' + <tablename> + ' WHERE....' ;
然后:
EXECUTE Stat ;
注意:您也可以使用绑定参数。
检查this,了解有关如何使用此类功能的详细信息。