MySQL临时变量赋值

标签 mysql stored-procedures

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

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/

相关文章:

stored-procedures - DynamoDB 中的存储过程

java - 来自 Java 的具有多级参数的 NuoDB 存储过程调用

php - 从表中选择值更新其他表值 Codeigniter 问题

mysql - 如何使用 MySQL Master/Slave 验证选择/插入是否命中正确的服务器

mysql - 返回连接有多个 child 的 parent 的单个记录

sql-server - SQL Server 临时表已经存在?

php - 如何使用 LIKE 查询进行范围划分

php - MySql 根据另外两个表的条​​件查找一个表中的数据

c# - MVC 4 - 报告服务和存储过程

mysql - 在mysql存储过程中执行多个动态查询