我试图在没有游标的情况下在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,因为第一次迭代后内循环没有运行。
答案 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;