คำสั่ง MySQL IF ELSE ใช้เพื่อสร้างโครงสร้างเงื่อนไขพื้นฐานเมื่อนิพจน์ประเมินเป็น false รูปแบบไวยากรณ์มีดังนี้
IF expression THEN
statements;
ELSE
else-statements;
END IF;
คำสั่งต้องลงท้ายด้วยเซมิโคลอน
เพื่อสาธิตการใช้ IF ELSE statement ภายใน MySQL stored procedure เรากำลังสร้าง stored procedure ต่อไปนี้ซึ่งอิงตามค่า ตามที่แสดงด้านล่าง ของตารางชื่อ '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)
คำสั่งต่อไปนี้จะสร้าง procedure ชื่อ 'coursedetails_IFELSE' ซึ่งมีคำสั่ง IF ELSE อยู่ในนั้น
mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IFELSE(IN S_Subject Varchar(20), OUT S_Course varchar(50))
-> 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)';
-> ELSE
-> SET S_Course = 'Subject Not in the table ';
-> END IF;
-> END //
Query OK, 0 rows affected (0.00 sec)
ตอนนี้ เราสามารถดูผลลัพธ์ด้านล่างเมื่อเราเรียกใช้ procedure นี้
mysql> Delimiter ; //
mysql> CALL coursedetails_IFELSE('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_IFELSE ('History', @S_Course);
Query OK, 0 rows affected (0.00 sec)
mysql> Select @S_Course;
+--------------------------------+
| @S_Course |
+--------------------------------+
| Subject Not in the table |
+--------------------------------+
1 row in set (0.00 sec)