10

我有一张像下面这样的桌子。

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;

不要问我为什么将年龄存储在临时变量中,因为上面不是确切的过程。

当我运行该过程时,临时变量与我为选择查询获得的结果集一起显示为结果集之一。如何避免在分配后将临时变量显示为结果集的一部分?

4

1 回答 1

12

试试这个,

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

或者

SELECT Age INTO @Age
FROM People
WHERE PeopleId = 16;
于 2012-11-08T05:49:14.420 回答