คำสั่ง IF-THEN-ELSE ใน MySQL Stored Procedure ใช้สำควบคุมเงื่อนไขแบบทวิภาค (2 ทางเลือก) รูปแบบ syntax ดังนี้:
IF yourCondition THEN
yourStatement1;
ELSE
yourStatement2;
END IF;
ตัวอย่างการใช้งาน
1. สร้าง Stored Procedure ที่มี IF-ELSE
mysql> delimiter //
mysql> create procedure If_else_stored_demo(value int)
-> begin
-> if value > 1000 then
-> select "your value is greater than 1000";
-> else
-> select "your value is less than or equal to 1000";
-> end if;
-> end
-> //
Query OK, 0 rows affected (0.00 sec)
mysql> delimiter ;
2. เรียกใช้งาน Stored Procedure
mysql> call If_else_stored_demo(500);
ผลลัพธ์ (500 ≤ 1000 → เงื่อนไข ELSE):
+------------------------------------------+ | your value is less than or equal to 1000 | +------------------------------------------+ | your value is less than or equal to 1000 | +------------------------------------------+ 1 row in set (0.00 sec)
หากเรียก call If_else_stored_demo(1500); จะได้:
+-------------------------------+ | your value is greater than 1000 | +-------------------------------+ | your value is greater than 1000 | +-------------------------------+
โครงสร้าง IF แบบสมบูรณ์ (IF-THEN-ELSEIF-ELSE)
IF condition1 THEN
statement1;
ELSEIF condition2 THEN
statement2;
ELSE
statement3;
END IF;
ข้อควรระวัง
- ต้องใช้
DELIMITER //ก่อนสร้าง Procedure และDELIMITER ;หลังเสร็จ END IF;ต้องมีเครื่องหมายเซมิคอลอน- ไม่สามารถใช้
IFนอกจาก Stored Program (Procedure, Function, Trigger, Event) ได้ ต้องใช้IF()function แทนใน Query ธรรมดา
สรุป: ใช้ IF-THEN-ELSE ใน Stored Procedure สำหรับเงื่อนไข 2 ทางเลือก ใช้ IF-THEN-ELSEIF-ELSE สำหรับหลายเงื่อนไข และจำไว้ว่า END IF; ต้องลงท้ายด้วยเซมิคอลอน