博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql存储过程游标使用
阅读量:5010 次
发布时间:2019-06-12

本文共 1187 字,大约阅读时间需要 3 分钟。

BEGIN   	DECLARE idCount int DEFAULT 0;-- 定义查询的id count	DECLARE nameCount int DEFAULT 0;-- 统计相同名字合计	DECLARE openerId int DEFAULT 0; 	DECLARE openerName VARCHAR(255);	-- 遍历数据结束标志	DECLARE done INT  DEFAULT FALSE;	-- 定义游标  DECLARE cur CURSOR FOR select count(*) count,opener FROM qf_invoice where (`status` >10 or `status` =1)  GROUP BY opener;	-- 将结束标志绑定到游标  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;	-- 打开游标  OPEN cur;	-- 开始循环  read_loop: LOOP    -- 提取游标里的数据,这里只有一个,多个的话也一样;    FETCH cur INTO nameCount,openerName;		SELECT nameCount,openerName;      -- 声明结束的时候    IF done THEN			SELECT 'done';      LEAVE read_loop;    END IF;    -- 业务逻辑		SELECT id,COUNT(id) into openerId,idCount from qf_merchant_invoice where `status` = 1 and opener = openerName;    if(idCount !=0) THEN  -- 查询结果为null时游标会主动退出			update qf_merchant_invoice SET invoice_number = invoice_number + nameCount where id = openerId;		ELSE			INSERT into qf_merchant_invoice(opener,invoice_number,create_time,STATUS) VALUES(openerName,nameCount,NOW(),1);		end if;  END LOOP;  -- 关闭游标  CLOSE cur;END

 有一点:有时候使用游标要使用别名,不然会造成游标结果和sql查询不一致;

加上别名: 

不加别名:

数据库直接查询结果

 

转载于:https://www.cnblogs.com/SimonHu1993/p/10721649.html

你可能感兴趣的文章
利用php Jpgraph绘制柱形图
查看>>
[转载]C-Style Character Strings
查看>>
05.UIDynamic
查看>>
php正确率比较高的安装教程
查看>>
常见26个jquery使用技巧详解(比如禁止右键点击、隐藏文本框文字等)
查看>>
基于ARM+LINUX的无线视频采集系统设计----------项目整体介绍
查看>>
python log
查看>>
迭代器,递归,函数名的使用,闭包
查看>>
DOM结构学习备忘
查看>>
关于idea优化的博客(分享)
查看>>
BZOJ1015[JSOI2008]星球大战starwar[并查集]
查看>>
BZOJ 1415: [Noi2005]聪聪和可可 [DP 概率]
查看>>
信息资源管理第一章知识结构
查看>>
LeetCode Bitwise AND of Numbers Range
查看>>
python 的with用途(清理资源和异常处理,同时代码精简)
查看>>
dns server 域名解析总结
查看>>
getHibernateTemplate用法
查看>>
Reactive Cocoa Tutorial [3] = "RACSignal的巧克力工厂“;
查看>>
delete master error(git push origin :master)
查看>>
Faster RCNN代码解析
查看>>