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

标签 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 Workbench是否提供了任何工具,可以让我将动态查询查看为自然的SQL语句?

谢谢

最佳答案

您发布的内容不是动态查询(实际上,您似乎也存在一些语法错误)。

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

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

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

然后:

EXECUTE Stat ;

注意:您还可以使用参数绑定(bind)。

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

关于MySQL:查看 SQL 格式的动态查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40734604/

相关文章:

javascript - Node.js API 与 express 和 mysql - 获取记录计数、页码……并提供分页

MySQL 函数使用提供的变量引发错误

mysql - 为什么与 docker 容器的 SSH 连接不起作用?

python - Django/mysqlclient 寻找丢失的 `libmysqlclient.18.dylib` 文件

mysql - 查询特定字符数的列的值

php - 如何在Codeigniter中更新数据库中特定列的值

mysql - 错误 1452 (23000) : Cannot add or update a child row: a foreign key constraint fails MySQL

javascript - 提交表单后刷新页面

php - 如何在 foreach 语句中组合 2 个单独的 MySQL 查询

mysql - mysql中的递减超过零