Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL LOOP स्टेटमेंट का उपयोग स्टोर्ड प्रोसीजर में कैसे किया जा सकता है?


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 स्टेटमेंट में ब्लॉक सम संख्याओं के साथ स्ट्रिंग बनाएगा।


  1. - MySQL स्टोर्ड प्रोसीजर में FOR LOOP कैसे उपयोग करें?

    MySQL में FOR LOOP नहीं, WHILE LOOP उपयोग करें MySQL स्टोर्ड प्रोसीजर में **FOR LOOP नहीं होता** (Oracle PL/SQL के विपरीत)। इसके बजाय WHILE या LOOP ... LEAVE निर्माण का उपयोग करें। WHILE LOOP पैटर्न (सिफारिश) DELIMITER // CREATE PROCEDURE YourProcedureName() BEGIN DECLARE counter INT DEFAULT 1;

  1. - MySQL में स्टोर्ड प्रोसीजर के माध्यम से लूप कैसे चलाएं

    MySQL स्टोर्ड प्रोसीजर में REPEAT लूप MySQL स्टोर्ड प्रोसीजर में REPEAT ... UNTIL लूप का उपयोग करके पुनरावृत्ति करें। स्टोर्ड प्रोसीजर बनाना LastValue -> END REPEAT; -> END // Query OK, 0 rows affected (0.17 sec) mysql> DELIMITER ; प्रोसीजर कॉल करना mysql> CALL do_WhileDe

  1. - MySQL में स्टोर्ड प्रोसीजर को SELECT स्टेटमेंट से कैसे कॉल करें?

    CALL कमांड का उपयोग करें, FROM क्लॉज में नहीं MySQL में स्टोर्ड प्रोसीजर को SELECT ... FROM procedure() सिंटैक्स से कॉल नहीं कर सकते। इसके बजाय CALL कमांड उपयोग करें, फिर अलग से SELECT चलाएं। उदाहरण टेबल बनाएं: ); इन्सर्ट करने वाला प्रोसीजर बनाएं DELIMITER ; प्रोसीजर कॉल करें CALL insert_info