mysql repeat 和 loop_MySQL WHILE和LOOP和REPEAT循环的用法区别 MySQL三种循环的区别 MySQL循环使用方法...

MySQL WHILE和LOOP和REPEAT循环的用法区别 MySQL三种循环的区别 MySQL循环使用方法

一、MySQL循环概述

MySQL中有三种循环,分别是 WHILE , REPEAT , LOOP (据说还有 goto),不可单独使用,主要用于 存储过程 PROCEDURE 和 函数 FUNCTION 中。

二、WHILE 循环

1、语法: WHILE condition DO doSomething END WHILE ;

2、说明: condition 条件满足情况下,则执行循环体内容,不满足,则结束循环。(如:2>1,满足;1<2,不满足。) --- 先判断,后执行。

3、示例: 创建 while 循环的存储过程 pro_while

DROP PROCEDURE IF EXISTS pro_while ;

CREATE PROCEDURE pro_while()

BEGIN

DECLARE sum INT DEFAULT 0 ;

WHILE sum < 100 DO

INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)

VALUES (CONCAT(sum,''),CONCAT('while',sum) , sum);

SET sum = sum + 1;

END WHILE ;

END;

4、调用存储过程: CALL pro_while();

三、REPEAT 循环

1、语法: REPEAT doSomething UNTIL condition END REPEAT ;

2、说明:doSomething 先执行相关操作 ,再判断是否满足条件,满足,结束循环。(和WHILE循环相反) --- 先执行,后判断。

3、示例:创建 repeat 循环的函数 fun_repeat

DROP FUNCTION IF EXISTS fun_repeat ;

CREATE FUNCTION fun_repeat() RETURNS INT

BEGIN

DECLARE sum INT DEFAULT 1000 ;

REPEAT

INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)

VALUES (CONCAT(sum,''),CONCAT('repeat',sum) , sum);

SET sum = sum + 1;

UNTIL sum > 1100 END REPEAT ; -- 满足条件结束循环

RETURN 1;

END;

4、执行函数: SELECT fun_repeat();

四、LOOP 循环

1、语法:

loop_name : LOOP

IF condition THEN

LEAVE loop_name ;

END IF;

doSomething

END LOOP;

2、说明:

loop_name 为循环名字,自定义,不可用关键字。

doSomething 执行的相关操作。

condition 满足条件,则结束循环。--- 先判断,后执行。

3、示例:创建 loop 循环的存储过程 pro_loop

DROP PROCEDURE IF EXISTS pro_loop ;

CREATE PROCEDURE pro_loop()

BEGIN

DECLARE sum int DEFAULT 10000 ;

loop_sums : LOOP -- 【开始】loop 名字,自定义

IF sum > 10100 THEN

LEAVE loop_sums ; -- 满足条件,则结束循环

END IF;

INSERT INTO `chapter`.`batch` (`id`, `name`, `age`)

VALUES (CONCAT(sum,''),CONCAT('loop',sum) , sum);

SET sum = sum + 1;

END LOOP ; -- 【结束】

END ;

4、调用存储过程: CALL pro_loop();

五、总结

1、WHILE 循环,先判断,后执行。满足条件,执行,执行循环。

2、REPEAT 循环,先执行,后判断。满足条件,不执行,结束循环。

3、LOOP 循环,先执行,后判断。满足条件,不执行,结束循环。

4、当条件为false时,REPEAT循环也能执行一次,类似于 java中的 do {} while (condition); 循环; 而 WHILE、LOOP 循环无法执行。

5、以上为本人自己总结的,若有失误,欢迎指正,感谢! ^_^。

了解更多...

MySQL存储过程学习整理,游标使用,参数输入输出

MyBatis调用存储过程,MyBatis调用函数的使用方法

MySQL 创建函数

MySQL触发器资料整理创建触发器及查看、删除触发器

MySQL创建视图

MySQL WHILE和LOOP和REPEAT循环的用法区别 MySQL三种循环的区别 MySQL循环使用方法

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值