MySQL临时变量赋值

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

我创建了一个过程,在其中使用临时变量age来实现某些目的。

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

   SELECT * 
     FROM People;
END;

上述并不是确切的步骤,所以我为什么要将年龄存储在临时变量中,请勿质疑。

运行该过程时,临时变量会作为结果集之一显示在查询结果集中。如何避免在赋值后将临时变量显示为结果集的一部分?

1个回答

12

试试这个。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接