Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Hiển thị kết quả từ Stored Procedure MySQL với IF...THEN...END IF

Cấu trúc IF trong Stored Procedure

MySQL hỗ trợ IF condition THEN ... END IF trong stored program (procedure, function, trigger).

Ví dụ

Tạo bảng:

CREATE TABLE DemoTable643 (ClientId INT);
INSERT INTO DemoTable643 VALUES (1000);

Tạo procedure:

DELIMITER //
CREATE PROCEDURE IF_DEMO(IN argument INT)
BEGIN
    DECLARE firstArgument INT DEFAULT 0;
    DECLARE secondArgument INT DEFAULT 1;

    IF firstArgument = argument THEN
        INSERT INTO DemoTable643 VALUES (2000);
    END IF;

    IF secondArgument = argument THEN
        SELECT * FROM DemoTable643;
    END IF;
END //
DELIMITER ;

Gọi procedure với argument = 0 (chạy INSERT):

CALL IF_DEMO(0);

Gọi procedure với argument = 1 (chạy SELECT):

CALL IF_DEMO(1);

Kết quả:

+----------+
| ClientId |
+----------+
| 1000     |
| 2000     |
+----------+

Cú pháp IF đầy đủ

IF condition THEN
    -- statements
ELSEIF condition2 THEN
    -- statements
ELSE
    -- statements
END IF;

Lưu ý

  • IF statement chỉ dùng trong stored program (BEGIN...END), KHÔNG dùng trong query thường.
  • Trong query thường dùng hàm IF(condition, true_val, false_val).
  • Khối BEGIN...END cần DELIMITER thay đổi khi tạo procedure.
  • Biến local (DECLARE) khác biến user (@var).

Ứng dụng thực tế

  • Logic điều hướng: Nếu tham số A thì INSERT, nếu B thì UPDATE, nếu C thì SELECT.
  • Validation: IF invalid THEN SIGNAL SQLSTATE '45000'.
  • Dynamic SQL: IF condition THEN PREPARE/EXECUTE.