如何用参数重复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;
我有以下带参数的光标。现在我需要在循环期间设置参数。他们是做到这一点的捷径吗?
光标:
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;