Câu lệnh IF ELSEIF ELSE trong MySQL thực thi các câu lệnh dựa trên nhiều biểu thức điều kiện. Cú pháp như sau:
IF expression THEN
statements;
ELSEIF elseif-expression THEN
elseif-statements;
...
ELSE
else-statements;
END IF;
Các câu lệnh phải kết thúc bằng dấu chấm phẩy.
Để minh họa việc sử dụng IF ELSEIF ELSE trong stored procedure MySQL, ta tạo thủ tục lưu trữ dựa trên dữ liệu bảng 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)
Tạo thủ tục coursedetails_IF_ELSEIF với logic điều kiện:
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)
Kết quả khi gọi thủ tục:
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)