MySQL nous fournit une instruction LOOP qui peut exécuter à plusieurs reprises des blocs de code et ajoute de la flexibilité dans l'utilisation des étiquettes de boucle. Nous avons les deux instructions suivantes qui nous permettent de contrôler la boucle -
Elle nous permet de quitter la boucle immédiatement sans attendre une vérification
Elle nous permet de sauter tout le code en dessous et commencer une nouvelle itération.
Démontre l'utilisation de l'instruction LOOP avec une procédure stockée. Ce qui suit est une procédure stockée qui construit une chaîne avec des nombres pairs, tels que 2, 4, 6, 8, etc. -
mysql> Delimiter // mysql> CREATE PROCEDURE LOOP_loop() -> BEGIN -> DECLARE A INT; -> DECLARE XYZ VARCHAR(255); -> SET A = 1; -> SET XYZ = ''; -> loop_label: LOOP -> IF A > 10 THEN -> LEAVE loop_label; -> END IF; -> SET A = A + 1; -> IF (A mod 2) THEN -> ITERATE loop_label; -> ELSE -> SET XYZ = CONCAT(XYZ,A,','); -> END IF; -> END LOOP; -> SELECT XYZ; -> END // Query OK, 0 rows affected (0.07 sec)
Maintenant, lorsque nous appelons cette procédure, nous pouvons voir les résultats suivants -
mysql> DELIMITER ; mysql> CALL LOOP_loop (); +-------------+ | XYZ | +-------------+ | 2,4,6,8,10, | +-------------+ 1 row in set (0.04 sec) Query OK, 0 rows affected (0.04 sec)
Dans la requête ci-dessus, si la valeur de A est supérieure à 10, la boucle se termine à cause de l'instruction LEAVE. Si la valeur de A est impaire, l'instruction ITERATE ignore tout ce qui se trouve en dessous et démarre une nouvelle itération. Si la valeur de A est un nombre pair, le bloc de l'instruction ELSE construira la chaîne en utilisant le nombre pair.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!