Как получить значения нескольких полей в SELECT внутри хранимой процедуры - PullRequest
0 голосов
/ 18 января 2012

Я пытаюсь заполнить мои переменные следующим образом.
Очевидно, я делаю что-то не так.

...

BEGIN
  DECLARE p_f1,p_f2 INT;
  SELECT
          f1 INTO p_f1,
          f2 INTO p_f2
  FROM
          t1
  LIMIT 1;
END

Какой правильный синтаксис для заполненияp_f1 и p_f2?

Ответы [ 3 ]

2 голосов
/ 18 января 2012

Вы указываете INTO только один раз для всего списка столбцов / переменных.

BEGIN
  DECLARE p_f1,p_f2 INT;
  SELECT
          f1, f2 INTO p_f1, p_f2
  FROM
          t1
  LIMIT 1;
END

Как всегда, я немного беспокоюсь, когда вижу ПРЕДЕЛ, используемый без ORDER BY. Убедитесь, что вы постоянно получаете одни и те же результаты каждый раз, указав явный порядок.

1 голос
/ 18 января 2012
  SELECT
          f1,f2 
  INTO 
          p_f1,p_f2
  FROM
          t1
  LIMIT 1;
0 голосов
/ 18 января 2012

Вы должны сделать это

НАЧАТЬ ОБЪЯВЛЕНИЕ p_f1 t1.f1% Тип, p_f2 t1.f2% Тип;
SELEC1.f2% Тип

      f1,f2 into p_f1,
      p_f2   FROM
      t1   LIMIT 1; END
...