zoukankan      html  css  js  c++  java
  • mysql 游标使用

    在mysql操作中,有时需要对查出的结果集进行每条记录操作时,可以使用游标来处理,游标充当了指针的作用,每次指向结果集中的一条记录

    使用语法:

    1.   声明一个游标: declare 游标名称 CURSOR for record;(record可以为任意查询的结果集)
    2.     打开定义的游标:open 游标名称;
    3.     获得下一行数据:FETCH  游标名称 into testrangeid,versionid;
    4.     需要执行的语句(增删改查):这里视具体情况而定
    5.     释放游标:CLOSE 游标名称;

    示例:

    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结果

  • 相关阅读:
    (转载)C#如何在任务管理器中不显示指定的窗体
    Windows上配置Mask R-CNN及运行示例demo.ipynb
    如何选择普通索引和唯一索引?
    relay(跳板机)搭建
    javascript 9x9乘法口诀表
    canvas画布爆炸
    Chrome Network Timing 解释
    JavaScript中对数组的定义
    jquery each 和 map 区别
    css 兼容性转换网站
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/11525780.html
Copyright © 2011-2022 走看看