Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL存储过程,多个选择只返回一行?_Mysql_Select_Stored Procedures - Fatal编程技术网

MySQL存储过程,多个选择只返回一行?

MySQL存储过程,多个选择只返回一行?,mysql,select,stored-procedures,Mysql,Select,Stored Procedures,我一直在开发一个在循环中运行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

我一直在开发一个在循环中运行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 //

我认为处理这个问题的最佳方法实际上是将输出存储到一个临时表中,然后在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 //