MySQL在WHILE循环中使用变量

问题描述:

我似乎无法找到为什么这会给我一个错误。它不能在循环中使用变量'art'。 但当我只是做MySQL在WHILE循环中使用变量

select art; 

它给我的项目的正确的号码。

drop procedure if exists bepaal_lijst_van_bij_te_bestellen_artikelen; 

    delimiter // 
    create procedure bepaal_lijst_van_bij_te_bestellen_artikelen() 
    begin 
     DECLARE art INT; 
     DECLARE i INT; 

     SELECT @art := COUNT(artikel_id) FROM artikelen; 

     SET i = 1; 
     WHILE i <= art DO 

     END WHILE; 
    end; 
    // 

    delimiter ; 
+2

它伤害了眼睛看这个'bepaal_lijst_van_bij_te_bestellen_artikelen'!有没有更简单的选择? – mavili 2013-03-16 15:55:44

+0

是的。这也伤害了我:)但是我的大学说我必须采用这个程序名称。对不起 – 2013-03-16 15:56:55

我认为你应该做

SET art := SELECT COUNT(artikel_id) FROM artikelen 
+0

现在可以使用。 SELECT @art:= COUNT(artikel_id)FROM artikelen; SET不起作用。然而while循环仍然不想启动。 – 2013-03-16 16:01:44

你可以只是做(注:我知道这个任务怎么一回事)

SELECT count(*) from Items into art; 

Apparantly while循环不能是空的,应该包含的东西。通过添加固定它

SET i = 1 + i;