Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

การเขียนเงื่อนไข IF ELSE ใน MySQL Stored Procedure

ใช้ IF-THEN-ELSE ควบคุมเงื่อนไขภายใน Stored Procedure

MySQL Stored Procedure รองรับโครงสร้างควบคุมเงื่อนไข IF ... THEN ... ELSE ... END IF เพื่อเลือก Execute คำสั่ง SQL ที่ต่างกันตามเงื่อนไข

ตัวอย่างสร้างตาราง 2 ตาราง

CREATE TABLE DemoTable1 (Id INT);
CREATE TABLE DemoTable2 (Id INT);

INSERT INTO DemoTable1 VALUES (10), (20), (30);
INSERT INTO DemoTable2 VALUES (40), (50), (60);

สร้าง Stored Procedure รับพารามิเตอร์ ตัดสินใจ SELECT จากตารางไหน

DELIMITER //
CREATE PROCEDURE Conditional_Query(IN p_id INT)
BEGIN
    IF p_id >= 40 THEN
        SELECT * FROM DemoTable2;
    ELSE
        SELECT * FROM DemoTable1;
    END IF;
END //
DELIMITER ;

ทดสอบเรียกใช้

CALL Conditional_Query(100);  -- >= 40 เลือก DemoTable2
+------+
| Id   |
+------+
| 40   |
| 50   |
| 60   |
+------+
CALL Conditional_Query(13);   -- < 40 เลือก DemoTable1
+------+
| Id   |
+------+
| 10   |
| 20   |
| 30   |
+------+

โครงสร้าง IF ใน MySQL:

  • IF condition THEN statements
  • ELSEIF condition THEN statements (สามารถมีหลายอัน)
  • ELSE statements
  • END IF

ตัวอย่าง IF หลายเงื่อนไข (ELSEIF):

IF score >= 90 THEN
    SET grade = 'A';
ELSEIF score >= 80 THEN
    SET grade = 'B';
ELSEIF score >= 70 THEN
    SET grade = 'C';
ELSE
    SET grade = 'F';
END IF;

ข้อควรระวัง: ต้องใช้ DELIMITER // ... DELIMITER ; ครอบ Procedure เพื่อไม่ให้ ; ภายในถูกตีความว่าจบคำสั่ง