2012-11-08 25 views
8

Ho una tabella come quella qui sotto.Assegnazione variabile temporanea 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); 

Ho creato una procedura in cui utilizzo l'età variabile temporanea per qualche scopo.

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

    SELECT * 
    FROM People; 
END; 

Non chiedere perché sto memorizzazione di età variabile temporanea poiché quanto sopra non è la procedura esatta.

Quando si esegue la procedura, la variabile temporanea viene visualizzata come uno dei set di risultati insieme al set di risultati che ottengo per la query selezionata. Come posso evitare di visualizzare la variabile temporanea come parte del set di risultati dopo l'assegnazione?

risposta

10

provare questo,

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

o

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