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

MySQL स्टोर्ड प्रोसीजर में IF...ELSE का उपयोग करके शर्तें सेट करना

MySQL स्टोर्ड प्रोसीजर में IF...ELSE सशर्त तर्क

MySQL स्टोर्ड प्रोसीजर IF...ELSE स्टेटमेंट का उपयोग करके सशर्त तर्क का समर्थन करते हैं, जिससे पैरामीटर मानों के आधार पर डायनामिक निष्पादन पथ सक्षम होते हैं।

सिंटैक्स

IF yourCondition THEN
    yourStatement1;
ELSE
    yourStatement2;
END IF;

पूर्ण उदाहरण: मान तुलना प्रोसीजर

mysql> DELIMITER //
mysql> CREATE PROCEDURE IF_ELSE_DEMO(IN value INT)
    -> BEGIN
    ->   SET @val = value;
    ->   IF @val > 10 THEN
    ->     SELECT CONCAT(@val, ' is greater than 10');
    ->   ELSE
    ->     SELECT CONCAT(@val, ' is less than 10 ');
    ->   END IF;
    -> END //
Query OK, 0 rows affected (0.16 sec)

mysql> DELIMITER ;

प्रोसीजर कॉल करें

mysql> CALL IF_ELSE_DEMO(18);

आउटपुट

+------------------------------------+
| concat(@val,' is greater than 10') |
+------------------------------------+
| 18 is greater than 10              |
+------------------------------------+
1 row in set (0.03 sec)
Query OK, 0 rows affected (0.04 sec)

IF...ELSEIF...ELSE संरचना

IF condition1 THEN
    statement1;
ELSEIF condition2 THEN
    statement2;
ELSE
    statement3;
END IF;

व्यावहारिक उदाहरण: ग्रेड निर्धारण

CREATE PROCEDURE GetGrade(IN score INT, OUT grade VARCHAR(2))
BEGIN
    IF score >= 90 THEN
        SET grade = 'A';
    ELSEIF score >= 80 THEN
        SET grade = 'B';
    ELSEIF score >= 70 THEN
        SET grade = 'C';
    ELSEIF score >= 60 THEN
        SET grade = 'D';
    ELSE
        SET grade = 'F';
    END IF;
END;

मुख्य बिंदु

  • DELIMITER प्रोसीजर परिभाषा के लिए आवश्यक है
  • IN पैरामीटर इनपुट मान स्वीकार करते हैं
  • SET सत्र चर असाइन करता है
  • CONCAT() स्ट्रिंग्स को जोड़ता है
  • प्रत्येक IF के लिए END IF आवश्यक है
  1. - MySQL स्टोर्ड प्रोसीजर में WHERE IN() क्लॉज का उपयोग कैसे करें?

    MySQL स्टोर्ड प्रोसीजर में डायनामिक WHERE IN() क्लॉज का उपयोग करने के लिए प्रिपेयर्ड स्टेटमेंट (Prepared Statements) का उपयोग करना पड़ता है, क्योंकि IN क्लॉज में सीधे पैरामीटर पास नहीं किया जा सकता। समस्या सीधे पैरामीटर उपयोग नहीं कर सकते: -- यह काम नहीं करेगा: SELECT * FROM table WHERE id IN (inpu

  1. - MySQL स्टोर्ड प्रोसीजर में गणितीय संक्रियाएं करें?

    आइए एक स्टोर्ड प्रोसीजर बनाते हैं। यहाँ हम amount*quantity की गणना कर रहे हैं यानी गणितीय संक्रियाएं लागू कर रहे हैं: mysql> delimiter // mysql> create procedure calculation_proc(amount int,quantity int) begin select amount,quantity,(amount*quantity) as Total; end // Query OK, 0 rows affe

  1. - MySQL स्टोर्ड प्रोसीजर में टेबल में डेटा कैसे इन्सर्ट करें?

    MySQL स्टोर्ड प्रोसीजर के अंदर INSERT स्टेटमेंट का उपयोग करके टेबल में डेटा इन्सर्ट कर सकते हैं। पैरामीटर लेकर डायनामिक इन्सर्ट करने वाला प्रोसीजर पुन: उपयोग योग्य और सुरक्षित होता है। सिंटैक्स CREATE PROCEDURE procedure_name(IN param1 TYPE, IN param2 TYPE, ...) BEGIN INSERT INTO table_name (co