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)