mysql中loop与if,WHILE LOOP与IF STATEMENT MYSQL

我发现你不能在mysql中存储过程之外的条件.这就是为什么语法错误.一旦我把代码放在我之间

BEGIN

SELECT MONTH(CURDATE()) INTO @curmonth;

SELECT MONTHNAME(CURDATE()) INTO @curmonthname;

SELECT DAY(LAST_DAY(CURDATE())) INTO @totaldays;

SELECT FIRST_DAY(CURDATE()) INTO @checkweekday;

SELECT DAY(@checkweekday) INTO @checkday;

SET @daycount = 0;

SET @workdays = 0;

WHILE(@daycount < @totaldays) DO

IF (WEEKDAY(@checkweekday) < 5) THEN

SET @workdays = @workdays+1;

END IF;

SET @daycount = @daycount+1;

SELECT ADDDATE(@checkweekday, INTERVAL 1 DAY) INTO @checkweekday;

END WHILE;

END

只为其他人:

如果您不确定如何在phpmyadmin中创建例程,您可以将其放在SQL查询中

delimiter ;;

drop procedure if exists test2;;

create procedure test2()

begin

select ‘Hello World’;

end

;;

运行查询.这将创建一个名为test2的存储过程或存储例程.现在转到例程选项卡,并将存储过程编辑为您想要的.如果你开始使用存储过程,我也建议你阅读http://net.tutsplus.com/tutorials/an-introduction-to-stored-procedures/.

显示程序正在工作

只需在END WHILE和END END之后添加以下行

SELECT @curmonth,@curmonthname,@totaldays,@daycount,@workdays,@checkweekday,@checkday;

然后在SQL查询窗口中使用以下代码.

call test2 /* or whatever you changed the name of the stored procedure to */

注意:如果您使用此功能,请记住,此代码不涉及国家观光假期(或任何假期).

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值