嵌套循环在Mysql中不起作用

时间:2016-02-27 12:34:51

标签: mysql database function

我试图在没有游标的情况下在Mysql中实现嵌套循环。

DELIMITER $$
CREATE FUNCTION abc() 
RETURNS INT 
BEGIN DECLARE val INT;
DECLARE row,col INT DEFAULT 1;
SET val=1;
  row_loop: LOOP
      SET col=1;
      col_loop: LOOP
           SET col=col+1;
           SET val=val+1;
           IF col>8 THEN
              LEAVE col_loop;
          END IF;
      END LOOP col_loop;
      SET row=row+1;
      IF row>8 THEN
          LEAVE row_loop;
      END IF;
    RETURN val;
END LOOP row_loop;
END;
$$

输出应该是64而不是我得到8,因为第一次迭代后内循环没有运行。

1 个答案:

答案 0 :(得分:0)

你的逻辑很好,除了return语句里面循环:

  row_loop: LOOP
      SET col=1;
      col_loop: LOOP
           SET col=col+1;
           SET val=val+1;
           IF col>8 THEN
              LEAVE col_loop;
          END IF;
      END LOOP col_loop;
      SET row=row+1;
      IF row>8 THEN
          LEAVE row_loop;
      END IF;
  END LOOP row_loop;
  RETURN val;