सशर्त MySQL क्वेरी के लिए, आप संग्रहीत कार्यविधि में IF ELSE अवधारणा का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं -
mysql> टेबल बनाएं DemoTable1 (Id int);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.62 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -
mysql> DemoTable1 मान (10) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.19 सेकंड) mysql> DemoTable1 मान (20) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड) mysql> DemoTable1 मानों में डालें ( 30);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.12 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -
mysql> DemoTable1 से *चुनें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----------+| आईडी |+------+| 10 || 20 || 30 |+------+3 पंक्तियाँ सेट में (0.00 सेकंड)दूसरी तालिका बनाने की क्वेरी निम्नलिखित है।
mysql> टेबल बनाएं DemoTable2 (Id int);क्वेरी ओके, 0 पंक्तियाँ प्रभावित (1.07 सेकंड)
इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें -
mysql> DemoTable2 मानों (40) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.13 सेकंड) mysql> DemoTable2 मान (50) में डालें; क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.17 सेकंड) mysql> DemoTable2 मानों में डालें ( 60);क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.11 सेकंड)
चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -
mysql> DemoTable2 से *चुनें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----------+| आईडी |+------+| 40 || 50 || 60 |+------+3 पंक्तियाँ सेट में (0.00 सेकंड)सशर्त MySQL क्वेरी के लिए संग्रहीत कार्यविधि बनाने के लिए क्वेरी निम्नलिखित है।
mysql> DELIMITER // mysql> क्रिएट प्रोसेस कंडिशनल_क्वेरी (आईडी इंट) अगर आईडी शुरू करें>=40 तो DemoTable2 से * चुनें; ELSE DemoTable1 से * चुनें; अगर अंत; END // क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित हुई हैं (0.21 सेकंड)mysql> DELIMITER;
अब आप कॉल कमांड की मदद से संग्रहित प्रक्रिया को कॉल कर सकते हैं -
mysql> conditional_Query(100) पर कॉल करें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----------+| आईडी |+------+| 40 || 50 || 60 |+------+3 पंक्तियाँ सेट में (0.00 सेकंड)क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.03 सेकंड)फिर से कॉल करें और एक अलग मान पास करें -
mysql> conditional_Query(13) पर कॉल करें;
यह निम्नलिखित आउटपुट उत्पन्न करेगा -
<पूर्व>+----------+| आईडी |+------+| 10 || 20 || 30 |+------+3 पंक्तियाँ सेट में (0.00 सेकंड) क्वेरी ठीक है, 0 पंक्तियाँ प्रभावित (0.02 सेकंड)