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;

上記は正確な手順ではないため、なぜ一時変数に年齢を格納しているのか尋ねないでください。

プロシージャを実行すると、一時変数が、selectクエリで取得した結果セットとともに結果セットの1つとして表示されます。割り当て後に結果セットの一部として一時変数が表示されないようにするにはどうすればよいですか?

4

1 に答える 1

12

これを試して、

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

また

SELECT Age INTO @Age
FROM People
WHERE PeopleId = 16;
于 2012-11-08T05:49:14.420 に答える