我有一张如下所示的表格。
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;
不要问我为什么将年龄存储在临时变量中,因为上面的过程不是确切的过程。
当我运行该过程时,临时变量与我为选择查询获得的结果集一起显示为结果集之一。如何避免在分配后将临时变量显示为结果集的一部分?
最佳答案
试试这个,
SET @Age = (SELECT Age FROM People WHERE PeopleId = 16);
或
SELECT Age INTO @Age
FROM People
WHERE PeopleId = 16;
关于MySQL临时变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13283216/