• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

While、Loop和Repeat三种循环语句有什么异同?

mysql 搞代码 4年前 (2022-01-09) 25次浏览 已收录 0个评论

相同点:不可单独使用,主要用于存储过程和函数FUNCTION中。区别:WHILE先判断,后执行;满足条件才执行。REPEAT和LOOP先执行,后判断;满足条件就结束循环。当条件为false时,REPEAT也能执行一次;其他两个语句无法执行。

本教程操作环境:windows7系统、mysql8版、Dell G3电脑。

一、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();

相关推荐《mysql视频教程》

三、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 ;
	<span style="color:transparent">来1源gaodai#ma#com搞*代#码1网</span>	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();


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:While、Loop和Repeat三种循环语句有什么异同?
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址