如何在MySQL存储过程中使用FOR LOOP?

以下是在MySQL存储过程中使用FOR LOOP的语法-

delimiter //

CREATE procedure yourProcedureName()wholeblock:BEGIN

   DECLARE anyVariableName1 INT ;

   Declare anyVariableName3 int;

   DECLARE anyVariableName2 VARCHAR(255);

   SET anyVariableName1 =1 ;

   SET anyVariableName3 =10;

   SET anyVariableName2 = '';

loop_label: FORLOOP

   IF anyVariableName1 > anyVariableName3 THEN

      LEAVE loop_label;

   END IF;

   SET anyVariableName2 = CONCAT(anyVariableName2 ,anyVariableName1 ,',');

   SET anyVariableName1 = anyVariableName1 + 1;

   ITERATE loop_label;

   END FORLOOP;

SELECT anyVariableName2;

END

//

现在,您可以实现上述语法。for循环查询如下-

mysql> delimiter //

mysql> CREATE procedure ForLoop()

   -> wholeblock:BEGIN

   -> DECLARE start INT ;

   -> Declare maxLimit int;

   -> DECLARE result VARCHAR(255);

   -> SET start =1 ;

   -> SET maxLimit=10;

   -> SET result = '';

   -> loop_label: LOOP

   -> IF start > 10 THEN

   -> LEAVE loop_label;

   -> END IF;

   -> SET result = CONCAT(result,start,',');

   -> SET start = start + 1;

   -> ITERATE loop_label;   

   -> END LOOP;

   -> SELECT result;

   -> END

   -> //

mysql> delimiter ;

上面的for循环打印1至10,即以下形式的1,2,3,4,..... 10。使用CALL命令调用存储过程。语法如下-

call yourStoredProcedureName();

要调用的查询如下-

mysql> call ForLoop();

输出结果

+-----------------------+

| result                |

+-----------------------+

| 1,2,3,4,5,6,7,8,9,10, |

+-----------------------+

1 row in set (0.00 sec)

以上是 如何在MySQL存储过程中使用FOR LOOP? 的全部内容, 来源链接: utcz.com/z/340959.html

回到顶部