La declaración MySQL LOOP podría usarse para ejecutar un bloque de código o un conjunto de declaraciones, una y otra vez, dependiendo de la condición.
Sintaxis:
[labelname:] LOOP statements END LOOP [labelname]
Parámetros –
- labelname : Es una etiqueta opcional al inicio y al final.
- sentencias: Pueden tener una o varias sentencias, cada una terminada en punto y coma (;) y ejecutadas por LOOP.
Sintaxis de la sentencia LOOP con sentencia LEAVE:
[labelname]: LOOP -- terminate the loop IF condition THEN LEAVE [labelname]; END IF; END LOOP;
Ejemplo 1 :
DROP PROCEDURE IF EXISTS GeekLoop();
DELIMITER $$ CREATE PROCEDURE GeekLoop() BEGIN DECLARE no INT; SET no = 0; loop: LOOP SET no = no +1; select no ; IF no =5 THEN LEAVE loop; END IF; END LOOP loop; SELECT no; END $$ DELIMITER ;
Declaración para verificar la salida:
CALL GeekLoop();
Producción –
0, 1, 2, 3, 4, 5
Ejemplo-2:
DELIMITER $$ CREATE FUNCTION Geekdemo (value1 INT) RETURNS INT BEGIN DECLARE value2 INT; SET value2 = 0; label: LOOP SET income = value2 + value1 ; IF value2 < 4000 THEN ITERATE label; END IF; LEAVE label; END LOOP label; RETURN value2 ; END $$ DELIMITER ;
Consultas para verificar la salida:
CALL Geekdemo();
Aporte –
value1: 3500
Producción –
value2: 3500
Ejemplo-3:
CREATE TABLE Geektable (value VARCHAR(50) NULL DEFAULT NULL);
DELIMITER $$ CREATE PROCEDURE ADD() BEGIN DECLARE a INT Default 1 ; simple_loop: LOOP insert into table1 values(a); SET a=a+1; IF a=11 THEN LEAVE simple_loop; END IF; END LOOP simple_loop; END $$
Consultas para verificar la salida –
CALL ADD(); Select value from Geektable;
Producción –
1 2 3 4 5 6 7 8 9 10
Publicación traducida automáticamente
Artículo escrito por khushboogoyal499 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA