MySQL 中的 while 循环与 if 语句

0 mysql if-statement while-loop

由于最后的 while 循环,我遇到了语法错误。我尝试过切换它,但在这里找不到问题 - 纯粹是 MySQL 不支持 while 循环中的 if 语句吗?

DELIMITER //
CREATE PROCEDURE bLAHbLAHbLAH(p_fromdate datetime, p_todate datetime)
BEGIN

Declare startday datetime;
declare numberofdays int;
declare Counter int;

Set startday = p_fromdate;
Set numberofdays = (select datediff("2012-05-01","2012-11-01"));
Set Counter = 0;

WHILE startday<p_todate DO
    if (select date_format(startday, '%W')) in ('Monday','Tuesday','Wednesday','Thursday','Friday') THEN
        SET Counter = Counter+1;
        SET startday = date_add(startday, INTERVAL 1 DAY);
    else
        SET startday = date_add(startday, INTERVAL 1 DAY);
END WHILE;

select Counter; 

END//

DELIMITER ;
Run Code Online (Sandbox Code Playgroud)

jue*_*n d 5

你忘记了一个

end if;
Run Code Online (Sandbox Code Playgroud)

之前end while

WHILE startday<p_todate DO
    if (select date_format(startday, '%W')) in ('Monday','Tuesday','Wednesday','Thursday','Friday') THEN
        SET Counter = Counter+1;
        SET startday = date_add(startday, INTERVAL 1 DAY);
    else
        SET startday = date_add(startday, INTERVAL 1 DAY);
    end if;                                                   /*add this line*/
END WHILE;
Run Code Online (Sandbox Code Playgroud)