您的位置:首页 > 数据库 > SQL

MySQL 循环方法 while loop repeat 详解

2018-03-25 13:44 706 查看
存储过程中使用到的循环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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: