将“ Execute语句”结果放入MySQL中的变量

时间:2018-12-11 06:23:21

标签: mysql stored-procedures

如何放置“ EXECUTE语句;”将结果转换为变量,以便在需要时可以使用简单的SELECT命令获得结果。结果将包含基于用户输入的随机列数。 所以,我想要的是这样的:

SET @RES := EXECUTE stmt;

然后我可以申请-

SELECT @RES;

再三考虑,我希望得到结果-

WITH res_set1 AS (
   EXECUTE stmt;
)
SELECT * FROM res_set1;

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该在准备好的语句中使用变量。

您将必须构造准备好的语句,这样它才能一次给您一行,例如:

SET @sql='SELECT col1, col2 FROM test WHERE id=3 INTO @v1, @v2';
PREPARE stmt FROM @sql; 
EXECUTE stmt;

执行后,您将在变量col1col2中拥有@v1@v2中的值

要处理多行,请循环使用准备好的语句:

SET @sql='SELECT col1, col2 FROM test WHERE id=? INTO @v1, @v2';
PREPARE stmt FROM @sql; 

SET @idx = 1;

REPEAT
   EXECUTE stmt USING @idx;
   SET @idx = @idx + 1;
UNTIL @idx > 6 END REPEAT;