如何在STORED PROCEDURE中的SELECT中获取多个字段的值

时间:2012-01-18 19:03:15

标签: mysql sql stored-procedures syntax mysql-5.1

我试图通过以下方式填充我的变种 显然,我做错了。

...

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 个答案:

答案 0 :(得分:2)

您只为整个列/变量列表指定INTO一次。

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

与往常一样,每当我看到没有ORDER BY的LIMIT时,我都会有点担心。通过指定明确的订单,确保每次始终获得相同的结果。

答案 1 :(得分:1)

  SELECT
          f1,f2 
  INTO 
          p_f1,p_f2
  FROM
          t1
  LIMIT 1;

答案 2 :(得分:0)

你应该这样做

  

BEGIN DECLARE p_f1 t1.f1%Type,p_f2 t1.f2%Type;
   SELEC1.f2%Type

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