2016-11-22 50 views
0

我在互联网上搜索了很多,但找不到任何机制。MySQL:以SQL格式查看动态查询

我的问题是关于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

你贴什么是动态查询(实际上,它看起来你有一些语法错误以及)。

动态查询(通常被称为DYNAMIC SQL)用于将查询动态地短语转换为字符串,然后通知DBMS执行包含在该字符串中的查询。

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

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

然后:

EXECUTE Stat ; 

注意:您还可以使用绑定的参数。有关如何使用此类功能的详细信息,请参阅this