MySQL हमें एक LOOP स्टेटमेंट प्रदान करता है जो लूप लेबल का उपयोग करने की अतिरिक्त लचीलेपन के साथ कोड के एक ब्लॉक को बार-बार निष्पादित करता है। हमारे पास लूप को नियंत्रित करने की अनुमति देने वाले निम्न दो स्टेटमेंट्स हैं:
LEAVE स्टेटमेंट
यह हमें शर्त की जांच की प्रतीक्षा किए बिना तुरंत लूप से बाहर निकलने की अनुमति देता है।
ITERATE स्टेटमेंट
यह हमें इसके तहत पूरे कोड को छोड़ने और एक नई पुनरावृत्ति शुरू करने की अनुमति देता है।
LOOP स्टेटमेंट के उपयोग को स्टोर्ड प्रोसीजर के साथ दर्शाने के लिए, निम्न एक स्टोर्ड प्रोसीजर है जो 2,4,6,8 आदि जैसी सम संख्याओं के साथ एक स्ट्रिंग बनाता है:
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)
अब, जब हम इस प्रोसीजर को इनवोक करते हैं तो परिणाम देख सकते हैं:
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)
उपरोक्त क्वेरी में, यदि A का मान 10 से अधिक है तो LEAVE स्टेटमेंट के कारण लूप समाप्त हो जाता है। यदि A का मान विषम संख्या है तो ITERATE स्टेटमेंट इसके नीचे सब कुछ अनदेखा करता है और एक नई पुनरावृत्ति शुरू करता है। यदि A का मान सम संख्या है तो ELSE स्टेटमेंट में ब्लॉक सम संख्याओं के साथ स्ट्रिंग बनाएगा।