Mega Code Archive

 
Categories / MySQL Tutorial / Procedure Function
 

Simple LOOP

[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>