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).