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

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


MySQL IF ELSE जब अभिव्यक्ति का मूल्यांकन असत्य होता है, तो कथन एक बुनियादी सशर्त निर्माण को लागू करता है। इसका सिंटैक्स इस प्रकार है -

IF अभिव्यक्ति तब कथन;ELSE अन्य-कथन;END IF;

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

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

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

निम्न क्वेरी से 'coursedetails_IFELSE' नाम की एक प्रक्रिया बनेगी, जिसमें IF ELSE स्टेटमेंट होंगे -

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

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

<पूर्व>mysql> सीमांकक; //mysql> कॉल coursedetails_IFELSE('Computers', @S_Course);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.00 सेकंड)mysql> @S_Course चुनें;+-------------+| @S_Course |+---------------+| बी.टेक (सीएसई) |+---------------+1 पंक्ति में सेट (0.00 सेकंड)mysql> कॉल coursedetails_IFELSE ('इतिहास', @S_Course);क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित हैं ( 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