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

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


MySQL IF ELSEIF ELSE कई भावों के आधार पर कथनों को निष्पादित करें इसका सिंटैक्स इस प्रकार है -

अगर एक्सप्रेशन तब स्टेटमेंट्स;ELSEIF और इफ-एक्सप्रेशन तब और इफसिफ-स्टेटमेंट्स;…………ELSE और-स्टेटमेंट्स;END IF;

कथनों के अंत में अर्धविराम होना चाहिए।

IF ELSEIF ELSE . के उपयोग को प्रदर्शित करने के लिए MySQL संग्रहीत कार्यविधि के भीतर, हम निम्नलिखित संग्रहीत कार्यविधि बना रहे हैं जो नीचे दिखाए गए मानों पर आधारित है, 'student_info' नाम की तालिका के -

mysql> student_info से * चुनें; ---+| आईडी | नाम | पता | विषय |+------+---------+-----------+---------------+| 101 | यशपाल | अमृतसर | इतिहास || 105 | गौरव | जयपुर | साहित्य || 125 | रमन | शिमला | कंप्यूटर |+----------+---------+---------------+---------------+3 पंक्तियाँ सेट में (0.00 सेकंड)

निम्न क्वेरी से 'coursedetails_IF_ELSEIF' नाम की एक प्रक्रिया बनेगी जिसमें IF ELSEIF ELSE है इसमें बयान -

mysql> DELIMITER //;mysql> CREATE PROCEDURE coursedetails_IF_ELSEIF(IN S_Subject Varchar(20), OUT S_Course varchar(20)) -> BEGIN -> DECLARE Sub Varchar(20); -> उप में विषय चुनें -> छात्र_जानकारी से जहां S_Subject =विषय; -> IF Sub ='कंप्यूटर' तब -> SET S_Course ='B.Tech (CSE)'; -> ELSEIF Sub ='इतिहास' तब -> SET S_Course ='इतिहास में परास्नातक'; -> ELSEIF उप ='साहित्य' तब -> SET S_Course ='अंग्रेजी में परास्नातक'; -> अंत अगर; -> END // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.00 सेकंड)

अब, जब हम इस प्रक्रिया को लागू करते हैं तो हम नीचे परिणाम देख सकते हैं -

<पूर्व>mysql> सीमांकक; //mysql> कॉल coursedetails_IF_ELSEIF('Computers', @S_Course);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.00 सेकंड)mysql> @S_Course चुनें;+-------------+| @S_Course |+---------------+| बी.टेक (सीएसई) |+---------------+1 पंक्ति सेट (0.00 सेकंड)mysql> कॉल coursedetails_IF_ELSEIF ('साहित्य', @S_Course); क्वेरी ठीक है, 1 पंक्ति प्रभावित ( 0.00 सेकंड)mysql> @S_Course चुनें;+--------------------------+| @S_Course |+----------------------+| अंग्रेजी में परास्नातक |+--------------------------+1 पंक्ति सेट (0.00 सेकंड) में
  1. हम एक MySQL संग्रहीत प्रक्रिया के अंदर रोलबैक लेनदेन कैसे कर सकते हैं?

    जैसा कि हम जानते हैं कि रोलबैक लेन-देन शुरू होने के बाद डेटाबेस में किए गए किसी भी बदलाव को वापस कर देगा। रोलबैक करने के लिए MySQL संग्रहीत कार्यविधि में हमें EXIT declare घोषित करना होगा हैंडलर। हम एक हैंडलर का उपयोग स्क्लेक्ससेप्शन या एसक्यूएल चेतावनियों के लिए कर सकते हैं। इसे एक उदाहरण की मदद

  1. एक MySQL संग्रहीत कार्यविधि इसके अंदर किसी अन्य MySQL संग्रहीत कार्यविधि को कैसे कॉल कर सकती है?

    यह बहुत संभव है कि एक MySQL संग्रहीत कार्यविधि इसके अंदर किसी अन्य MySQL संग्रहीत कार्यविधि को कॉल कर सकती है। इसे प्रदर्शित करने के लिए, हम एक उदाहरण ले रहे हैं जिसमें एक संग्रहीत कार्यविधि last_insert_id का पता लगाने के लिए किसी अन्य संग्रहीत कार्यविधि को कॉल करेगी। उदाहरण mysql> Create table e

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

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