2013-03-16 235 views
1

我似乎無法找到爲什麼這會給我一個錯誤。它不能在循環中使用變量'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

回答

1

我認爲你應該做

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

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

1

你可以只是做(注:我知道這個任務怎麼一回事)

SELECT count(*) from Items into art; 
1

Apparantly while循環不能是空的,應該包含的東西。通過添加固定它

SET i = 1 + i;