循环结构一共分为三种:
三种循环结构分别为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