如何用参数重复mysql游标?

How to repeate mysql cursor with parameter?

我有以下带参数的光标。现在我需要在循环期间设置参数。他们是做到这一点的捷径吗?

光标:

DECLARE curs1 CURSOR FOR 
     SELECT  USER_ID,affiliate_id
 FROM `wpmr_aff_referrals` WHERE affiliate_id=AFFILIATEID;

光标正文部分:

OPEN curs1;    
read_loop : LOOP    
FETCH curs1 INTO USERID,AFFILIATEID;
IF (vCNT>=3) THEN  
set AFFILIATEID=10;
ELSE
set new.affiliate_id= 5;
END IF;    
END LOOP read_loop;
CLOSE curs1;

set AFFILIATEID=10; 它应该像在 Oracle 中一样重新打开我们打开游标作为 c_emp (23);

用内部块和循环试试这个。

    OPEN curs1;    
        read_loop : LOOP    
        FETCH curs1 INTO USERID,AFFILIATEID;
        IF (vCNT>=3) THEN  
        set AFFILIATEID=10;
        ELSE
        set new.affiliate_id= 5;
        END IF;    

        BLOCK2: begin
                     DECLARE USERID1 varchar(50);
     DECLARE AFFILIATEID1 varchar(50) default
                    declare curs2 cursor for
                       SELECT  USER_ID,affiliate_id
         FROM `wpmr_aff_referrals` WHERE affiliate_id=AFFILIATEID;

                    open curs2;
                    LOOP2: loop
                        FETCH curs2 INTO USERID1,AFFILIATEID1;

                    end loop LOOP2;
                    CLOSE curs2;
                end BLOCK2;


        END LOOP read_loop;
        CLOSE curs1;