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

Lưu giá trị cột vào biến của Stored Procedure MySQL

Giới thiệu

Trong Stored Procedure, dùng DECLARE để khai báo biến cục bộ, sau đó dùng SELECT ... INTO bien để gán giá trị từ cột bảng vào biến (chỉ trả về 1 hàng).

Ví dụ minh họa

Bước 1: Tạo bảng và chèn dữ liệu

CREATE TABLE DemoTable2034 (
    StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName VARCHAR(20),
    StudentAge INT
);
INSERT INTO DemoTable2034 (StudentName, StudentAge) VALUES 
('Chris', 23), ('David', 21), ('Robert', 25), ('Mike', 19);

Bước 2: Tạo procedure nhận Id, lấy tên lưu vào biến, trả về chuỗi

DELIMITER //
CREATE PROCEDURE select_into_variable(IN id INT)
BEGIN
    DECLARE name VARCHAR(50);
    SELECT StudentName INTO name FROM DemoTable2034 WHERE StudentId = id;
    SELECT CONCAT('Your Name is= ', name);
END //
DELIMITER ;

Bước 3: Gọi procedure

CALL select_into_variable(4);

Kết quả:

+-------------------------------+
| concat('Your Name is= ',name) |
+-------------------------------+
| Your Name is= Mike            |
+-------------------------------+

Lưu ý: Nếu truy vấn SELECT ... INTO trả về 0 hàng hoặc >1 hàng, sẽ báo lỗi. Cần đảm bảo điều kiện WHERE chọn đúng 1 hàng (thường qua khóa chính).