运行保存在字段中的SQL查询

时间:2018-09-20 16:26:52

标签: mysql sql

我在下面的链接中有一个后续问题。显然我必须创建一个新问题(很抱歉,如果我不应该,我是stackoverflow的新手)

对此问题的回应之一是:

SELECT sql_text INTO @sql FROM sql_queries WHERE id = 1;
PREPARE sql_query FROM @sql;
EXECUTE sql_query;

如果逐行运行上面的命令会有所帮助,但是我希望将其作为一个整体运行并在另一个查询中使用结果。所以我的问题如下:

1-如果我删除分号并尝试同时运行三行,那将不起作用。

2-如何读取运行查询的结果。我当时正在考虑将所有三行都放在一个子查询中,但这没用。

如果您对此有任何评论,我表示感谢。谢谢!

OriginalQuestion

1 个答案:

答案 0 :(得分:0)

我认为您不能在另一个查询中“嵌入”执行(也不是结果),这听起来像是您的目标。相反,您可能需要考虑使用@sql查询作为子查询来构建最终查询,例如:

SET @finalSQL = CONCAT("SELECT stuff FROM sometables JOIN (", @sql, ") AS subQ ON blah");
PREPARE sql_query FROM @sql;
EXECUTE sql_query;

当然,您需要对已提供的@sql查询做出很多假设;至少您必须假定:它对连接条件有效(或使用子查询),并且它不以分号终止。后者很容易检查和补救,前者可能需要大量的分析和分析。