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

  • 相关阅读:
    TortoiseGit 合并主分支代码.pull request
    MVC EF 修改某些值
    MVC 提交表单
    MVC 统计之 自定义 列表
    MVC 起始页修改 区域
    asp.net C# MVC DropDownList
    asp.net C# MVC 提交表单后清空表单
    Python 线程启动的四种方式
    Git 命令的学习
    Node.js v10.1.0 Documentation
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/11525780.html
Copyright © 2011-2022 走看看