2012-11-08 7 views
8

다음과 같은 테이블이 있습니다.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); 

일부 용도로 임시 변수 연령을 사용하는 절차를 만들었습니다.

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

    SELECT * 
    FROM People; 
END; 

위의 내용은 정확한 절차가 아니기 때문에 임시 변수에 나이를 저장하는 이유는 묻지 마십시오.

프로 시저를 실행하면 임시 변수가 select 쿼리에 대한 결과 집합과 함께 결과 집합 중 하나로 표시됩니다. 할당 후 결과 변수의 일부로 임시 변수를 표시하지 않으려면 어떻게합니까?

답변

10

이 하나를 시도,

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

또는

SELECT Age INTO @Age 
FROM People 
WHERE PeopleId = 16;