begin
DECLARE im_id INT;
DECLARE moreval DOUBLE;
DECLARE lessval DOUBLE;
DECLARE flag int default 0;
# 这是重点,定义一个游标来记录sql查询的结;select FIND_IN_SET('6', '1'); 返回0 strlist中不存在str,所以返回0。
#LOCATE(substr,str):返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0.
DECLARE ic_list CURSOR for SELECT sn,inmany,inless from gulimpedance WHERE gulpn = pnstr ;
DECLARE CONTINUE HANDLER FOR NOT found set flag=1;# 为下面while循环建立一个退出标志,当游标遍历完后将flag的值设置为1
OPEN ic_list;
# 将游标中的值赋给定义好的变量,实现for循环的要点
FETCH ic_list INTO im_id,moreval,lessval;
WHILE flag<>1 DO
#select im_id;
# 根据阻抗序号的唯一性,利用当前查询到的记录中的字段值来实现更新
UPDATE gulimpedance set inmany = 0.8,inless=1.6 WHERE sn= im_id and LOCATE( control, laystr) > 0;
FETCH ic_list into im_id,moreval,lessval; # 游标往后移
END WHILE;
CLOSE ic_list;#关闭游标
end