1.三种循环
- while
- fo loop
- repeat
2.while循环
# 语法
while 条件 do
循环体;
end while;
# 创建自定函数使用 while 循环
mysql> DELIMITER ;;
-> CREATE PROCEDURE sum1(a INT)
-> BEGIN
-> DECLARE sum INT DEFAULT 0; -- default 是指定该变量的默认值
-> DECLARE i INT DEFAULT 1;
-> WHILE i<=a DO -- 循环开始
-> SET sum=sum+i;
-> SET i=i+1;
-> END WHILE; -- 循环结束
-> SELECT sum; -- 输出结果
-> END
-> ;;
mysql> DELIMITER ;
msyql> CALL sum1(100); # 执行存储过程
msyql> DROP PROCEDURE IF EXISTS sum1; # 删除存储过程
3.loop
# 语法
loop_name:loop
if 条件 then -- 满足条件时离开循环
leave loop_name; -- 和 break 差不多都是结束训话
end if;
end loop;
mysql> DELIMITER ;;
-> CREATE PROCEDURE sum2(a int)
-> BEGIN
-> DECLARE sum INT DEFAULT 0;
-> DECLARE i INT DEFAULT 1;
-> loop_name:LOOP -- 循环开始
-> IF i>a THEN
-> LEAVE loop_name; -- 判断条件成立则结束循环,好比java中的 boeak
-> END IF;
-> SET sum=sum+i;
-> SET i=i+1;
-> END LOOP; -- 循环结束
-> SELECT sum; -- 输出结果
-> END
-> ;;
mysql> DELIMITER ;
msyql> CALL sum2(100); # 执行存储过程
msyql> DROP PROCEDURE IF EXISTS sum2; # 删除存储过程
4.repeat
# 语法
repeat
循环体
until 条件 end repeat;
mysql> DELIMITER ;;
-> CREATE PROCEDURE sum3(a int)
-> BEGIN
-> DECLARE sum INT DEFAULT 0;
-> DECLARE i INT DEFAULT 1;
-> REPEAT -- 循环开始
-> SET sum=sum+i;
-> SET i=i+1;
-> UNTIL i>a END REPEAT; -- 循环结束
-> SELECT sum; -- 输出结果
-> END
-> ;;
mysql> DELIMITER ;
mysql> CALL sum3(100); # 执行存储过程
msyql> DROP PROCEDURE IF EXISTS sum3; # 删除存储过程
reference:
https://www.cnblogs.com/Luouy/p/7301360.html