MySQL临时变量赋值

Arr*_*und 9 mysql mysqli stored-procedures prepared-statement

我有一张如下表所示的表格.

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);
Run Code Online (Sandbox Code Playgroud)

我创建了一个程序,我将临时变量age用于某些目的.

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

   SELECT * 
     FROM People;
END;
Run Code Online (Sandbox Code Playgroud)

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

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

Joh*_*Woo 11

尝试这个,

SET @Age = (SELECT Age FROM People WHERE PeopleId = 16);
Run Code Online (Sandbox Code Playgroud)

要么

SELECT Age INTO @Age
FROM People
WHERE PeopleId = 16;
Run Code Online (Sandbox Code Playgroud)