MySQL IF ELSEIF ELSE एकाधिक अभिव्यक्तियों के आधार पर स्टेटमेंट्स को निष्पादित करता है। इसका सिंटैक्स निम्नानुसार है:
IF expression THEN
statements;
ELSEIF elseif-expression THEN
elseif-statements;
...
ELSE
else-statements;
END IF;
स्टेटमेंट्स सेमीकोलन से समाप्त होने चाहिए।
IF ELSEIF ELSE स्टेटमेंट के उपयोग को दर्शाने के लिए, हम 'student_info' नामक टेबल के मानों के आधार पर निम्न स्टोर्ड प्रोसीजर बना रहे हैं:
mysql> Select * from student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Jaipur | Literature | | 125 | Raman | Shimla | Computers | +------+---------+------------+------------+ 3 rows in set (0.00 sec)
निम्न क्वेरी '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);
SELECT Subject INTO SUB
FROM Student_info WHERE S_Subject = Subject;
IF Sub = 'Computers' THEN
SET S_Course = 'B.Tech(CSE)';
ELSEIF Sub = 'History' THEN
SET S_Course = 'Masters in History';
ELSEIF Sub = 'Literature' THEN
SET S_Course = 'Masters in English';
END IF;
END //
Query OK, 0 rows affected (0.00 sec)
अब, जब हम इस प्रोसीजर को इनवोक करते हैं तो परिणाम देख सकते हैं:
mysql> Delimiter ; //
mysql> CALL coursedetails_IF_ELSEIF('Computers', @S_Course);
Query OK, 1 row affected (0.00 sec)
mysql> Select @S_Course;
+-------------+
| @S_Course |
+-------------+
| B.Tech(CSE) |
+-------------+
1 row in set (0.00 sec)
mysql> CALL coursedetails_IF_ELSEIF ('Literature', @S_Course);
Query OK, 1 row affected (0.00 sec)
mysql> Select @S_Course;
+--------------------+
| @S_Course |
+--------------------+
| Masters in English |
+--------------------+
1 row in set (0.00 sec)