我一直在研究一个在循环中运行select语句的存储过程。
通过mysqli或phpmyadmin查看结果时,我只收到一行。返回多行我需要做什么?
这是一个非常简单的例子,说明了我的问题......
DROP PROCEDURE IF EXISTS simple //
CREATE PROCEDURE simple()
BEGIN
DECLARE c INT(10);
SET c = 1;
REPEAT
SELECT c;
SET c = c + 1;
UNTIL c >= 10 END REPEAT;
END //
答案 0 :(得分:1)
我认为处理此问题的最佳方法实际上是将输出存储到临时表中,然后在while循环结束时进行最终选择。
DROP PROCEDURE IF EXISTS simple //
CREATE PROCEDURE simple()
BEGIN
CREATE TEMPORARY TABLE output (finalC INT(10));
DECLARE c INT(10);
SET c = 1;
REPEAT
INSERT INTO output SELECT c;
SET c = c + 1;
UNTIL c >= 10 END REPEAT;
SELECT * FROM output;
END //