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

एक संग्रहीत कार्यविधि में MySQL LOOP कथन का उपयोग कैसे किया जा सकता है?


MySQL हमें एक लूप प्रदान करता है स्टेटमेंट जो लूप लेबल का उपयोग करने के अतिरिक्त लचीलेपन के साथ कोड के एक ब्लॉक को बार-बार निष्पादित करता है। हमारे पास निम्नलिखित दो कथन हैं जो हमें लूप को नियंत्रित करने की अनुमति देते हैं -

बयान छोड़ें

यह हमें स्थिति की जांच की प्रतीक्षा किए बिना तुरंत लूप से बाहर निकलने की अनुमति देता है।

पुनरावृत्ति कथन

यह हमें इसके तहत पूरे कोड को छोड़ने और एक नया पुनरावृत्ति शुरू करने की अनुमति देता है।

लूप . के उपयोग को प्रदर्शित करने के लिए संग्रहीत प्रक्रियाओं के साथ बयान, निम्नलिखित एक संग्रहीत प्रक्रिया है जो 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 संग्रहित प्रक्रिया में फॉर लूप का उपयोग कैसे करें?

    MySQL संग्रहीत कार्यविधि में FOR LOOP के साथ काम करने के लिए सिंटैक्स निम्नलिखित है - anyVariableName3 सेट करें तो लूप_लेबल छोड़ दें; अगर अंत; कोई भी वैरिएबल नाम 2 सेट करें =CONCAT (कोई भी वैरिएबल नाम 2, कोई भी वैरिएबल नाम 1, ,); कोई भी वैरिएबल नाम 1 =कोई भी वैरिएबल नाम 1 + 1 सेट करें; ITERATE लूप_

  1. MySQL में संग्रहीत प्रक्रिया के माध्यम से लूप कैसे करें?

    आइए देखें कि MySQL में संग्रहीत कार्यविधि के माध्यम से लूप कैसे करें DELIMITER; अब कॉल कमांड की मदद से स्टोर की गई प्रक्रिया को कॉल करें। क्वेरी इस प्रकार है do_WhileDemo(10) पर कॉल करें; निम्न आउटपुट है +----------+| @लूप |+----------+| 1 |+----------+1 पंक्ति सेट में (0.00 सेकंड)+----------+|

  1. MySQL में चुनिंदा कथन का उपयोग करके संग्रहीत प्रक्रिया को कैसे कॉल करें?

    MySQL में, FROM क्लॉज में सेलेक्ट फ्रॉम प्रोसेस का उपयोग करना संभव नहीं है। आप कॉल कमांड का उपयोग कर सकते हैं और उसके बाद सेलेक्ट स्टेटमेंट को निष्पादित किया जा सकता है। आइए पहले एक टेबल बनाएं: );क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.66 सेकंड) संग्रहीत कार्यविधि बनाने की क्वेरी निम्नलिखित है: D