mysql 存储过程:根据mysql查询结果集循环遍历等

本文介绍了一个MySQL存储过程,用于实现上一天代理佣金的自动结算。通过游标遍历符合条件的记录,并更新状态及执行佣金结算操作。

1.话不多说

BEGIN
	#Routine body goes here...
 
     #定义 变量  
           DECLARE a int;  
           DECLARE b DECIMAL(11,2);  
             
           #此变可有可无,为了给个该存储函数执行成功后给个提示,运行下便知道  
           DECLARE str VARCHAR(300);  
           DECLARE x int;  
             
           #这个用于处理游标到达最后一行的情况  
           DECLARE s int default 0;  
           
           #声明游标cursor_name(cursor_name是个多行结果集)  
          

           DECLARE cursor_name CURSOR FOR select userid,agentmoney from agentlog where  TO_DAYS(ctime)=TO_DAYS(DATE_SUB(CURDATE(),INTERVAL 1 DAY)) and state=0;
             
           #设置一个终止标记   
    
           DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET s=1;  

						
						set @sta = 0;
						SELECT state into @sta from config where id=5;
						#如果为1,每天自动发放佣金,否则不执行执行
						IF @sta > 0 THEN

            set str = "--";  
                #打开游标  
  
  
                OPEN cursor_name;  
                      
                    #获取游标当前指针的记录,读取一行数据并传给变量a,b  
  
  
                    fetch  cursor_name into a,b;  
                    #开始循环,判断是否游标已经到达了最后作为循环条件   
  
  
                    while s <> 1 do  
                            set str =  concat(str,x);  
                            UPDATE agentlog set state=1,updatetime=NOW() where userid=a and  TO_DAYS(ctime)=TO_DAYS(DATE_SUB(CURDATE(),INTERVAL 1 DAY));
														call update_rmb(a,0,b,1,11,'佣金结算');
                            
                            #读取下一行的数据  
  
    
                            fetch  cursor_name into a,b;  
                      
                    end while;  
                   
                 #关闭游标  
  
  
                 CLOSE cursor_name ;  
              
            select str;  
            	END IF;
    #语句执行结束  
END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值