在mysql操作中,有时需要对查出的结果集进行每条记录操作时,可以使用游标来处理,游标充当了指针的作用,每次指向结果集中的一条记录
使用语法:
示例:
BEGIN # 遍历停止标识 DECLARE done INT DEFAULT FALSE; # 商品名称 DECLARE good_name VARCHAR(20); DECLARE count INT DEFAULT 0; # 总数 DECLARE total INT DEFAULT 0; # 游标定义,此处为后面查询的结果集,游标类似于指针作用,每次指向一条记录,从而对当前的这条记录进行操作 DECLARE cur CURSOR FOR SELECT tg.good_name, od.count FROM t_order_detail od LEFT JOIN t_goods tg ON od.goods_id = tg.id WHERE od.goods_id = 1; # 当没有找到记录时设置遍历标识 DECLARE continue HANDLER FOR NOT FOUND SET done = TRUE; # 打开定义的游标 OPEN cur; # 获取下一行数据 FETCH cur INTO good_name, count; # 遍历处理 WHILE NOT done DO SET total = total + 1; # 获取下一行数据 FETCH cur INTO good_name, count; END WHILE; # 关闭释放游标 CLOSE cur; SELECT total; END
最后SELECT total是为了查看total结果