我在下面的链接中有一个后续问题。显然我必须创建一个新问题(很抱歉,如果我不应该,我是stackoverflow的新手)
对此问题的回应之一是:
SELECT sql_text INTO @sql FROM sql_queries WHERE id = 1;
PREPARE sql_query FROM @sql;
EXECUTE sql_query;
如果逐行运行上面的命令会有所帮助,但是我希望将其作为一个整体运行并在另一个查询中使用结果。所以我的问题如下:
1-如果我删除分号并尝试同时运行三行,那将不起作用。
2-如何读取运行查询的结果。我当时正在考虑将所有三行都放在一个子查询中,但这没用。
如果您对此有任何评论,我表示感谢。谢谢!
答案 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查询做出很多假设;至少您必须假定:它对连接条件有效(或使用子查询),并且它不以分号终止。后者很容易检查和补救,前者可能需要大量的分析和分析。