mysql中的循环

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容