MySQL:以SQL格式查看动态查询

时间:2016-11-22 05:46:03

标签: mysql

我在互联网上搜索过很多内容,但找不到任何机制。

我的问题是关于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语句中?

由于

1 个答案:

答案 0 :(得分:0)

您发布的内容是一个动态查询(实际上,它看起来也有一些语法错误)。

动态查询(通常称为 DYNAMIC SQL )用于将查询动态地表示为字符串,然后告诉DBMS执行该字符串中包含的查询。

例如,假设您需要根据某些条件从TABLE1或TABLE2中检索数据。您可以使用和IF ... THEN ... ELSE...使用适用的表名构造或构建字符串,然后使用PREPAREEXEC命令。类似的东西:

PREPARE Stat FROM 'SELECT * FROM ' + <tablename> + ' WHERE....' ;

然后:

EXECUTE Stat ;

注意:您也可以使用绑定参数。

检查this,了解有关如何使用此类功能的详细信息。