在MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱,在这里就不错具体介绍了。
这几个循环语句的格式如下:
WHILE……DO……END WHILE
REPEAT……UNTIL END REPEAT
LOOP……END LOOP
GOTO。
下面首先使用第一种循环编写一个例子。
DROP PROCEDURE IF EXISTS `pro10`;
DELIMITER $$
CREATE PROCEDURE `pro10`()
BEGIN
-- 定义变量
DECLARE v_i int unsigned DEFAULT 0;
WHILE v_i < 5 DO
SELECT v_i;
SET v_i = v_i+1;
END WHILE;
END $$
DELIMITER ;
CALL pro10();
再来看一下第二个循环控制指令 REPEAT……END REPEAT。使用REPEAT循环控制语句编写下面这个存储过程:
DROP PROCEDURE IF EXISTS `pro11`;
DELIMITER $$
CREATE PROCEDURE `pro11`()
BEGIN
-- 定义变量
DECLARE v_i int unsigned DEFAULT 0;
REPEAT
SELE