CREATE DEFINER = `dba`@`xx.xx.xx.3` PROCEDURE `oninjadb`.`TESTLOOPER`()
LANGUAGE SQL
DETERMINISTIC
NO SQL
SQL SECURITY DEFINER
COMMENT ''
BEGIN
DECLARE counter INT default 0;
simple_loop: LOOP
SET counter=counter+1;
select counter;
IF counter=100 THEN
leave simple_loop;
END IF;
end loop simple_loop;
END
好的,一个简单的循环问题,从谷歌搜索复制。唯一的问题是循环不会通过多次,所以输出是1,就是这样。我知道这是一个简单的循环,但我需要得到它,所以我继续讨论更复杂的问题。提前谢谢......
答案 0 :(得分:1)
您的程序实际上运行了100个查询。 第一个查询返回的数字为1。其他99个结果集返回正确的数字。
程序能够从多个查询返回多个结果集。您回读这些不同结果集的能力取决于您使用的API。
答案 1 :(得分:1)
这可能会让你回到正轨:)
drop procedure if exists test_looper;
delimiter #
create procedure test_looper
(
in p_max int unsigned
)
proc_main:begin
declare v_counter int unsigned default 0;
if p_max is null or p_max <= 0 then
leave proc_main;
end if;
while v_counter < p_max do
select v_counter;
set v_counter=v_counter+1;
end while;
end proc_main#
delimiter ;
call test_looper(10);