open cur1;
myloop: LOOP
set tmpname='1111111111111';//这句赋值语句没有执行
FETCH cur1 into tmpname;IF done = 1 THEN
LEAVE myloop;
ELSE
set tmpname = '0';//这句有执行,但是只是字符串的第一个字符变成了0 ????
select count(*) into retvalue from issues where my_test(tmpname, title);END IF;
END LOOP myloop;
close cur1;LOOP循环是从哪里开始循环的呢?
假设结果集为(zzzz, liaowei, wuzuning, suchongli, zhuzongtao, linnuanbin, zhengyuquan, luopengcheng)但是通过上面的游标赋值后得到的值为
(zzzzuanbinng, liaoweibinng, wuzuninginng, suchonglinng, zhuzongtaong, linnuanbinng, zhengyuquang, luopengcheng,)???
为什么呢????
set sql='select count(*) into retvalue from issues where my_test('
PREPARE stmt2 FROM sql;
myloop: LOOP
set tmpname = '1111111111111';
set sql=concat(sql,tmpname,', title)');
EXECUTE stmt2;
FETCH cur1 into tmpname;
IF done = 1 THEN
LEAVE myloop;
ELSE
set sql=concat(sql,tmpname,', title)');
EXECUTE stmt2;
END IF;
END LOOP myloop;
DEALLOCATE PREPARE stmt2;
close cur1;
set tmpname='1111111111111';//这句赋值语句没有执行
FETCH cur1 into tmpname;
IF done = 1 THEN
LEAVE myloop;
ELSE
set tmpname = '0';//这句有执行,但是只是字符串的第一个字符变成了0 ????
select count(*) into retvalue from issues where my_test(tmpname, title);
END IF;
END LOOP myloop;