一个简单的循环问题

时间:2010-12-28 23:04:17

标签: mysql loops

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,就是这样。我知道这是一个简单的循环,但我需要得到它,所以我继续讨论更复杂的问题。提前谢谢......

2 个答案:

答案 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);
相关问题