mysql repeat循环语句

mysql的REPEAT循环语句的语法如下:

REPEAT
Statements;
UNTIL expression
END REPEAT

在REPEAT语句中不管是否满足给定条件,首先会执行一次statements, 然后再在UTILE中判断给定的条件是否成立,如果条件不成立会继续执行,如果条件成立则退出REPEAT循环。

如下是一个使用REPEAT语句的存储过程。

 DELIMITER $$
 DROP PROCEDURE IF EXISTS RepeatLoopProc$$
 CREATE PROCEDURE RepeatLoopProc()
       BEGIN
               DECLARE x  INT;
               DECLARE str  VARCHAR(255);
               SET x = 1;
               SET str =  '';
               REPEAT
                           SET  str = CONCAT(str,x,',');
                           SET  x = x + 1; 
               UNTIL x  > 5
               END REPEAT;
               SELECT str;
       END$$
 DELIMITER ;

在存储过程中首先声明了两个变量x和str,然后在REPEAT语句中对str变量做concat操作,然后对x做加一操作,直到x>5时退出循环。

MySQL中有三种循环语句,分别是while循环、loop循环和repeat循环。 1. while循环:使用DELIMITER设置分隔符为//,然后使用WHILE关键字来定义循环条件,当条件满足时执行循环体内的语句,直到条件不满足时跳出循环。在循环体内可以执行任意的SQL语句。最后使用END WHILE结束循环。例如: ``` DELIMITER // DROP PROCEDURE IF EXISTS test; CREATE PROCEDURE test() BEGIN DECLARE i INT; SET i = 0; WHILE i < 5 DO INSERT INTO test VALUES(i+11,'test','20'); SET i = i+1; END WHILE; SELECT * FROM test; END // CALL test(); DELIMITER ; ``` 2. loop循环:使用DELIMITER设置分隔符为//,然后使用LOOP关键字来定义循环体,循环体内的语句会一直执行,直到遇到LEAVE关键字或者满足结束循环的条件。在循环体内可以执行任意的SQL语句。最后使用END LOOP结束循环。例如: ``` DELIMITER // DROP PROCEDURE IF EXISTS test; CREATE PROCEDURE test() BEGIN DECLARE i INT; SET i = 0; lp : LOOP INSERT INTO test VALUES(i+11,'test','20'); SET i = i + 1; IF i > 10 THEN LEAVE lp; END IF; END LOOP; SELECT * FROM test; END // CALL test(); DELIMITER ; ``` 3. repeat循环:使用DELIMITER设置分隔符为//,然后使用REPEAT关键字来定义循环体,循环体内的语句会一直执行,直到满足结束循环的条件。在循环体内可以执行任意的SQL语句。最后使用END REPEAT结束循环。例如: ``` DELIMITER // DROP PROCEDURE IF EXISTS test; CREATE PROCEDURE test() BEGIN DECLARE i INT; SET i = 0; REPEAT INSERT INTO test VALUES(i+11,'test','20'); SET i = i + 1; UNTIL i > 10 END REPEAT; SELECT * FROM test; END // CALL test(); DELIMITER ; ``` 以上是MySQL中三种循环语句的用法。根据具体的需求,可以选择合适的循环语句来实现相应的功能。 #### 引用[.reference_title] - *1* *2* *3* [MySQL循环语句](https://blog.csdn.net/Linuxprobe18/article/details/113103194)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值