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

Kiểm tra biến cục bộ NULL trong stored procedure MySQL với COALESCE

Dùng COALESCE(bien, gia_tri_mac_dinh) để thay NULL bằng giá trị mặc định. Tạo stored procedure:

mysql> DELIMITER //
CREATE PROCEDURE local_VariableDemo()
BEGIN
    DECLARE value1 INT;
    DECLARE value2 INT;
    SELECT value1, value2;
    SELECT CONCAT('After checking local variable is null the sum = ', 
           COALESCE(value1,0) + COALESCE(value2,0));
END //
DELIMITER ;

Gọi procedure:

mysql> CALL local_VariableDemo();

Kết quả (biến chưa gán giá trị → NULL):

+--------+--------+
| value1 | value2 |
+--------+--------+
| NULL   | NULL   |
+--------+--------+
1 row in set (0.00 sec)

+-----------------------------------------------------------------------------------------------------+
| concat('After checking local variable is null the sum = ',COALESCE(value1,0)+COALESCE(value2,0))     |
+-----------------------------------------------------------------------------------------------------+
| After checking local variable is null the sum = 0                                                   |
+-----------------------------------------------------------------------------------------------------+
1 row in set (0.01 sec)

Giải thích: COALESCE(value1,0) trả về 0 nếu value1 là NULL. Tổng = 0+0=0. Nếu gán SET value1=5; trước khi SELECT, kết quả sẽ là 5.