MySQL支持三种常见的循环语句:`WHILE`、`REPEAT`和`LOOP`。这些循环语句允许你根据特定条件重复执行一段代码。
WHILE循环
WHILE循环会在指定条件为真时重复执行代码块。当条件为假时,循环停止。
```mysql
DELIMITER //
DROP PROCEDURE IF EXISTS WhileTest;
CREATE PROCEDURE WhileTest()
BEGIN
DECLARE i INT DEFAULT 0;
WHILE i < 10 DO
INSERT INTO test_table (number) VALUES (i);
SET i = i + 1;
END WHILE;
END //
DELIMITER ;
```
REPEAT循环
REPEAT循环与WHILE循环类似,但条件检查是在循环体的末尾进行。
```mysql
DELIMITER //
DROP PROCEDURE IF EXISTS RepeatTest;
CREATE PROCEDURE RepeatTest()
BEGIN
DECLARE i INT DEFAULT 0;
REPEAT
INSERT INTO test_table (number) VALUES (i);
SET i = i + 1;
UNTIL i >= 10 END REPEAT;
END //
DELIMITER ;
```
LOOP循环
LOOP循环会一直执行,直到遇到`LEAVE`或`ITERATE`语句。
```mysql
DELIMITER //
DROP PROCEDURE IF EXISTS LoopTest;
CREATE PROCEDURE LoopTest()
BEGIN
DECLARE i INT DEFAULT 0;
LOOP
INSERT INTO test_table (number) VALUES (i);
SET i = i + 1;
IF i >= 10 THEN
LEAVE LoopTest;
END IF;
END LOOP;
END //
DELIMITER ;
```
在使用这些循环语句时,你需要注意定义合适的分隔符(通常是`//`),并在循环结束后将其重置为默认的分隔符(`;`),以便执行其他SQL语句。此外,确保循环条件和更新语句正确无误,以避免无限循环或逻辑错误。