Mysql 循环结构 while、loop、repeat的使用

xiaoxiao2025-09-12  82

                  Mysql 循环结构 while、loop、repeat的使用

分类:while、loop、repeat         循环控制:             iterate:类似于continue,继续,结束本次循环,继续等下一次             legel:类似于break 跳出,结束当前所有的循环

       1、while             语法:                          while 循环条件 do                         循环体;                     end while 标签;         2、loop             语法:                     标签 loop                     循环体;                     end loop 标签;                 可以用来模拟简单的死循环         3、repeat             语法:                     标签 repeat                     循环体;                     until 结束循环的条件                     end repeat ;

1、while的使用

案例1:批量插入,根据次数插入到admin表中多条记录

DELIMITER $ CREATE PROCEDURE pro_while(in insertCount int) BEGIN declare i int default 1; while i<=insertCount do insert into admin(username,`password`) values(concat('test',i),'123456'); set i=i+1; end while; END $ DELIMITER ;

    调用:call pro_while(20);

2、while leave使用(类似于break)

案例2:批量插入,根据次数插入到admin中,如果次数>20次,测停止

DELIMITER $ CREATE PROCEDURE pro_while2(IN insertCount INT) BEGIN DECLARE i INT DEFAULT 1; a:WHILE i<insertCount DO INSERT into admin(username,`password`) VALUE (concat('test1',i),'234343'); IF i>=20 THEN LEAVE a; END IF; #使用了if需要结尾 SET i=i+1; END WHILE a; #使用了while 需要结尾 END $ DELIMITER ;

调用:call pro_while2(204);

3、while iterate(相当于continue)

DELIMITER $ CREATE PROCEDURE pro_whileIterate(IN insertCount INT) BEGIN DECLARE i INT DEFAULT 0; a:WHILE i<insertCount DO SET i=i+1; -- if i%2==0 THEN iterate a; IF MOD(i,2)!=0 THEN ITERATE a; END IF; INSERT INTO admin(username,`password`) values (concat('test1',i),'234343'); END WHILE a; END $ DELIMITER ;

调用:call pro_whileIterate(100);

转载请注明原文地址: https://www.6miu.com/read-5036196.html

最新回复(0)