[begin_label:] LOOP
statement_list
END LOOP [end_label]
A LOOP statement can be labeled.
end_label cannot be given unless begin_label also is present.
If both are present, they must be the same.
mysql>
mysql> delimiter $$
mysql> CREATE PROCEDURE myProc()
-> DETERMINISTIC
-> BEGIN
-> DECLARE counter INT DEFAULT 0;
->
-> simple_loop: LOOP
-> SET counter=counter+1;
-> select counter;
-> IF counter=10 THEN
-> LEAVE simple_loop;
-> END IF;
-> END LOOP simple_loop;
-> SELECT 'I can count to 10';
-> END$$
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> delimiter ;
mysql>
mysql> call myProc();
+---------+
| counter |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
+---------+
| counter |
+---------+
| 2 |
+---------+
1 row in set (0.02 sec)
+---------+
| counter |
+---------+
| 3 |
+---------+
1 row in set (0.02 sec)
+---------+
| counter |
+---------+
| 4 |
+---------+
1 row in set (0.02 sec)
+---------+
| counter |
+---------+
| 5 |
+---------+
1 row in set (0.02 sec)
+---------+
| counter |
+---------+
| 6 |
+---------+
1 row in set (0.02 sec)
+---------+
| counter |
+---------+
| 7 |
+---------+
1 row in set (0.02 sec)
+---------+
| counter |
+---------+
| 8 |
+---------+
1 row in set (0.02 sec)
+---------+
| counter |
+---------+
| 9 |
+---------+
1 row in set (0.33 sec)
+---------+
| counter |
+---------+
| 10 |
+---------+
1 row in set (0.33 sec)
+-------------------+
| I can count to 10 |
+-------------------+
| I can count to 10 |
+-------------------+
1 row in set (0.33 sec)
Query OK, 0 rows affected (0.33 sec)
mysql>
mysql> DROP PROCEDURE myProc;
Query OK, 0 rows affected (0.00 sec)
mysql>