mysql的循环语句
时间: 2023-08-21 21:18:37 浏览: 167
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 ]