mysql存储过程----循环结构

2020-12-07 15:38:46 浏览数 (2)

循环结构一共分为三种:

三种循环结构分别为while、repeat、loop。

while循环

语法

代码语言:javascript复制
while 表达式(如果表达式为true则执行业务逻辑,否则不执行,与repeat循环相反,repeat循环满足表达式退出循环,不满足一直执行) do
 业务逻辑
end while;

事例

代码语言:javascript复制
BEGIN	
	DECLARE num int DEFAULT 0;
	WHILE num<100 DO
	SET num=num 1;
  END WHILE;
  select CONCAT(num);
END
repeat语法:
代码语言:javascript复制
REPEAT
  业务逻辑
  UNTIL 表达式(满足表达式退出循环,不满足一直执行。和while相反,while循环满足表达式循环,不满足跳出循环)
END REPEAT
事例:
代码语言:javascript复制
BEGIN	
	DECLARE num int DEFAULT 0;
		 REPEAT
			SET num=num 1;
	   UNTIL num=100
     END REPEAT;
  select CONCAT(num);
END
loop语法:

注意:必须在loop的业务逻辑中定义退出循环的的语句,否则出现死循环。可以使用leave关键字退出循环。

代码语言:javascript复制
[别名:]loop
业务逻辑
end loop [别名]

使用leave退出loop循环语法

代码语言:javascript复制
BEGIN	
	DECLARE num int DEFAULT 0;
        -- countnum为loop别名
		countnum: LOOP
			
			IF 表达式 THEN
			 LEAVE countnum;
			END IF;
		END LOOP countnum;
  select CONCAT(num);
END

事例:

代码语言:javascript复制
BEGIN	
	DECLARE num int DEFAULT 0;
		countnum: LOOP
			SET num=num 1;
			IF num=50 THEN
			 LEAVE countnum;
			END IF;
		END LOOP countnum;
  select CONCAT(num);
END

0 人点赞