2012-11-08 37 views
8

Tôi có một bảng như dưới đây.Phân bổ biến tạm thời của MySQL

CREATE TABLE People(PeopleId INT NOT NULL PRIMARY KEY AUTO_INCREMENT, 
        Name VARCHAR(255), 
        Age INT); 

INSERT INTO People(Name, Age) 
      VALUES('Sam', 25), 
        ('John', 24), 
        ('Ria', 14), 
        ('Diya', 23), 
        ('Topel',19), 
        ('Mac', 45); 

Tôi đã tạo quy trình sử dụng độ tuổi biến đổi tạm thời cho một số mục đích.

DROP PROCEDURE IF EXISTS Sample; 
CREATE PROCEDURE Sample() 
BEGIN 
    SELECT @Age = Age 
    FROM People 
    WHERE PeopleId = 4; 

    SELECT * 
    FROM People; 
END; 

Đừng hỏi lý do tại sao tôi lưu trữ độ tuổi tạm thời vì quy trình trên không chính xác.

Khi tôi chạy quy trình, biến tạm thời được hiển thị là một trong các tập hợp kết quả cùng với tập hợp kết quả tôi nhận được cho truy vấn chọn. Làm cách nào để tránh hiển thị biến tạm thời như một phần của tập kết quả sau khi gán?

Trả lời

10

thử thế này,

SET @Age = (SELECT Age FROM People WHERE PeopleId = 16); 

hoặc

SELECT Age INTO @Age 
FROM People 
WHERE PeopleId = 16; 
Các vấn đề liên quan