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

  • 相关阅读:
    路由的使用
    组件之间的参数传递
    vue组件的全局注册和局部注册
    git版本回退(回退至上个版本,回退至指定版本) git放弃本地所有未提交的修改
    vue工程中的文件
    新建vue项目(webpack-simple)
    NPM install -save 和 -save-dev 傻傻分不清
    动态增加表单vue element ui
    JAVA声明一个对象数组
    调用测试用
  • 原文地址:https://www.cnblogs.com/kingsonfu/p/11525780.html
Copyright © 2011-2022 走看看