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

MySQL में IF...THEN...END IF स्टेटमेंट के साथ स्टोर्ड प्रोसीजर से रिकॉर्ड प्रदर्शित करना

MySQL स्टोर्ड प्रोसीजर में IF-THEN-END IF कंडीशनल लॉजिक का उपयोग

MySQL स्टोर्ड प्रोसीजर में IF ... THEN ... END IF ब्लॉक का उपयोग करके शर्तीय लॉजिक लागू कर सकते हैं, जैसे पैरामीटर के आधार पर अलग-अलग क्रियाएं करना।

उदाहरण के साथ पूर्ण कार्यान्वयन

टेबल बनाना

mysql> CREATE TABLE DemoTable643 (ClientId INT);

रिकॉर्ड डालना

mysql> INSERT INTO DemoTable643 VALUES(1000);

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable643;

आउटपुट:

+----------+
| ClientId |
+----------+
| 1000     |
+----------+
1 row in set (0.00 sec)

IF-THEN-END IF के साथ स्टोर्ड प्रोसीजर बनाना

mysql> DELIMITER //
mysql> CREATE PROCEDURE IF_DEMO(argument INT)
BEGIN
    DECLARE firstArgument INT DEFAULT 0;
    DECLARE secondArgument INT DEFAULT 1;
    
    IF firstArgument = argument THEN
        INSERT INTO DemoTable643 VALUES(2000);
    END IF;
    
    IF secondArgument = argument THEN
        SELECT * FROM DemoTable643;
    END IF;
END //
mysql> DELIMITER ;

प्रोसीजर कॉल करना: argument = 0

mysql> CALL IF_DEMO(0);

परिणाम: Query OK, 1 row affected (0.17 sec) (2000 डाला गया, कोई परिणाम सेट नहीं)

प्रोसीजर कॉल करना: argument = 1

mysql> CALL IF_DEMO(1);

आउटपुट:

+----------+
| ClientId |
+----------+
| 1000     |
| 2000     |
+----------+
2 rows in set (0.00 sec)
Query OK, 0 rows affected (0.03 sec)

व्याख्या:

  • argument = 0: पहली IF सत्य → 2000 डाला गया; दूसरी IF असत्य → कोई SELECT नहीं
  • argument = 1: पहली IF असत्य; दूसरी IF सत्य → सभी रिकॉर्ड चुने गए (1000 और 2000)

IF-ELSEIF-ELSE संरचना

CREATE PROCEDURE DemoProc(IN score INT)
BEGIN
    DECLARE grade VARCHAR(10);
    
    IF score >= 90 THEN
        SET grade = 'A';
    ELSEIF score >= 80 THEN
        SET grade = 'B';
    ELSEIF score >= 70 THEN
        SET grade = 'C';
    ELSE
        SET grade = 'F';
    END IF;
    
    SELECT grade;
END

IF ब्लॉक में एकाधिक स्टेटमेंट

IF condition THEN
    Statement1;
    Statement2;
    -- ...
END IF;

नेस्टेड IF

IF outer_condition THEN
    IF inner_condition THEN
        -- ...
    END IF;
END IF;

केस स्टेटमेंट विकल्प (अधिक पठनीय एकाधिक शर्तों के लिए)

CASE argument
    WHEN 0 THEN INSERT ...
    WHEN 1 THEN SELECT ...
    ELSE SELECT 'Invalid argument';
END CASE;

महत्वपूर्ण नोट्स

  • प्रत्येक IF के लिए मिलान END IF आवश्यक
  • THEN के बाद स्टेटमेंट सेमीकोलन से समाप्त
  • DECLARE वेरिएबल BEGIN के तुरंत बाद होने चाहिए
  • स्टोर्ड प्रोसीजर में SELECT परिणाम सेट क्लाइंट को लौटाता है
  1. - MySQL में IN() क्लॉज़ के साथ एक क्वेरी में रिकॉर्ड कैसे डिलीट करें?

    MySQL में एक ही क्वेरी में एकाधिक विशिष्ट रिकॉर्ड डिलीट करने के लिए, DELETE स्टेटमेंट के साथ IN() ऑपरेटर का उपयोग करें। यह एकाधिक DELETE स्टेटमेंट चलाने से अधिक कुशल और पठनीय है। उदाहरण: विशिष्ट StudentId वाले रिकॉर्ड डिलीट करना डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1922 ( StudentI

  1. - MySQL में LIKE के साथ एकाधिक शब्दों से रिकॉर्ड कैसे फ़िल्टर करें?

    MySQL में किसी कॉलम को एकाधिक पैटर्न/शब्दों के विरुद्ध फ़िल्टर करने के लिए, RLIKE (या REGEXP) ऑपरेटर का उपयोग करें जो रेगुलर एक्सप्रेशन ऑल्टरनेशन (|) सपोर्ट करता है। यह एकाधिक LIKE शर्तों से अधिक संक्षिप्त और लचीला है। उदाहरण: SQL या Python वाले विषय खोजना डेमो टेबल बनाएं: mysql> CREATE TABLE

  1. - MySQL में स्टोर्ड प्रोसीजर से टेबल रिकॉर्ड कैसे प्रदर्शित करें?

    MySQL में स्टोर्ड प्रोसीजर के अंदर SELECT स्टेटमेंट रखकर टेबल रिकॉर्ड्स प्रदर्शित कर सकते हैं। यह एनकैप्सुलेशन, पुन: उपयोग, और सुरक्षा (टेबल पर सीधे SELECT अधिकार दिए बिना डेटा एक्सेस) के लिए उपयोगी है। उदाहरण: सभी रिकॉर्ड प्रदर्शित करने वाला प्रोसीजर डेमो टेबल बनाएं: mysql> CREATE TABLE DemoT