【问题标题】:MySQL temporary variable assignmentMySQL 临时变量赋值
【发布时间】:2012-11-08 05:47:13
【问题描述】:

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

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;

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

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

【问题讨论】:

    标签: mysql stored-procedures


    【解决方案1】:

    试试这个,

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

    SELECT Age INTO @Age
    FROM People
    WHERE PeopleId = 16;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-24
      • 1970-01-01
      • 2012-02-04
      • 2020-02-21
      • 1970-01-01
      • 2017-03-28
      相关资源
      最近更新 更多