MySQL 循环方法 while loop repeat 详解

本文详细介绍了MySQL存储过程中三种循环的使用方法:while循环、loop循环及repeat循环,并通过实例展示了如何利用这些循环来实现累加求和的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

存储过程中使用到的循环
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;    # 删除存储过程

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;    # 删除存储过程

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;    # 删除存储过程

循环函数 :
repeat(str, count) : 将 str 字符串循环 count 并合并返回
mysql> SELECT REPEAT('a',10);
+----------------+
| REPEAT('a',10) |
+----------------+
| aaaaaaaaaa     |
+----------------+
1 row in set (0.00 sec)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值