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

时间:2012-04-03 02:56:11

标签: mysql stored-procedures select mysqli

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

1 个答案:

答案 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 //