首页 数据库 mysql教程 游标,存储过程

游标,存储过程

Jun 07, 2016 pm 02:57 PM
US 存储 游标 过程

游标,存储过程 无 DELIMITER $$USE `eloan_tj`$$DROP PROCEDURE IF EXISTS `pro_d_tender_updatecount`$$CREATE DEFINER=`dba`@`%` PROCEDURE `pro_d_tender_updatecount`(IN pownerid INT)BEGIN -- 借款成功次数 i=循环标识符 DECLARE cid,i INT; -- 成功借

游标,存储过程
DELIMITER $$

USE `eloan_tj`$$

DROP PROCEDURE IF EXISTS `pro_d_tender_updatecount`$$

CREATE DEFINER=`dba`@`%` PROCEDURE `pro_d_tender_updatecount`(IN pownerid INT)
BEGIN
        -- 借款成功次数 i=循环标识符
        DECLARE cid,i INT;
        -- 成功借款时间','号分割 2012-03-19,2012-03-19
        DECLARE cdatestr TEXT;
        -- 两次时间
        DECLARE dateS,dateE VARCHAR(50); 
        SET i = 1;     
        -- 借款成功次数,借款成功时间
        SELECT  
        COUNT(DISTINCT FROM_UNIXTIME(cdate,'%Y-%m-%d')),GROUP_CONCAT(DISTINCT FROM_UNIXTIME(cdate,'%Y-%m-%d') ORDER BY cdate)  
        INTO cid,cdatestr FROM d_tender_repayment WHERE borrowerid = pownerid;
        SELECT  GROUP_CONCAT(DISTINCT FROM_UNIXTIME(cdate,'%Y-%m-%d') ORDER BY cdate) gcdate INTO cdatestr FROM d_tender_repayment WHERE borrowerid = pownerid;
     
	WHILE i <= cid DO
	      SELECT SUBSTRING_INDEX(cdatestr,',',i-1) INTO dateS; -- 上次时间
	      SELECT SUBSTRING_INDEX(cdatestr,',',i) INTO dateE; -- 这次时间
	  	      
	      SET dateS = UNIX_TIMESTAMP(SUBSTRING_INDEX(dateS,',',-1));-- 上次','最后时间
	      SET dateE = UNIX_TIMESTAMP(SUBSTRING_INDEX(dateE,',',-1));-- 这次','最后时间
	
	      IF i = 1 THEN
	         UPDATE d_tender SET bidding = 0 WHERE cdate <= dateE  AND ownerid = pownerid;
              ELSE
                 UPDATE d_tender SET bidding = i-1 WHERE cdate >= dateS AND cdate <= dateE AND ownerid = pownerid;
              END IF;           
              SET i= i +1; 
	END WHILE;
	-- 大于最后时间
	UPDATE d_tender SET bidding = cid  WHERE cdate >= dateE  AND ownerid = pownerid;
        -- 未借款成功	
	UPDATE d_tender SET bidding = 0 WHERE bidding  IS NULL;

END$$

DELIMITER ;

CALL pro_d_tender(94)

SELECT ownerid,bidding,FROM_UNIXTIME(cdate,'%Y-%m-%d') FROM   d_tender WHERE ownerid = 94
--  2012-05-17
--  2013-06-25
--  2013-09-04
--  2013-12-11
SELECT  DISTINCT FROM_UNIXTIME(cdate,'%Y-%m-%d') gcdate FROM d_tender_repayment WHERE borrowerid =94;

SELECT ownerid,bidding,FROM_UNIXTIME(cdate,'%Y-%m-%d') FROM   d_tender WHERE ownerid = 416
--  2012-03-19
--  2012-09-19
SELECT  DISTINCT FROM_UNIXTIME(cdate,'%Y-%m-%d') gcdate FROM d_tender_repayment WHERE borrowerid =416;


UPDATE d_tender SET  bidding = NULL 


CALL pro_updatecount


SELECT * FROM d_tender


DROP PROCEDURE IF EXISTS pro_updatecount;
DELIMITER $$
CREATE PROCEDURE pro_updatecount()
BEGIN
	-- 声明一个标志done, 用来判断游标是否遍历完成
	DECLARE done INT DEFAULT 0;

	-- 声明一个变量,用来存放从游标中提取的数据
	-- 特别注意这里的名字不能与由游标中使用的列明相同,否则得到的数据都是NULL
	DECLARE pownerid VARCHAR(50) DEFAULT NULL;

	-- 声明游标对应的 SQL 语句
	DECLARE cur CURSOR FOR
		SELECT ownerid FROM d_tender GROUP BY ownerid;

	-- 在游标循环到最后会将 done 设置为 1
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
	-- 执行查询
	OPEN cur;
	-- 遍历游标每一行
	REPEAT
		-- 把一行的信息存放在对应的变量中
		FETCH cur INTO pownerid;
		IF NOT done THEN
			-- 这里就可以使用 pownerid对应的信息了
			CALL pro_d_tender_updatecount(pownerid);
		END IF;
 	UNTIL done END REPEAT;
	CLOSE cur;
END
$$
DELIMITER ;


登录后复制
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

华为明年将推创新 MED 存储产品:机架容量超过 10 PB,功耗低于 2 kW 华为明年将推创新 MED 存储产品:机架容量超过 10 PB,功耗低于 2 kW Mar 07, 2024 pm 10:43 PM

本站3月7日消息,华为数据存储产品线总裁周跃峰博士日前出席MWC2024大会,专门展示了为温数据(WarmData)和冷数据(ColdData)设计的新一代OceanStorArctic磁电存储解决方案。华为数据存储产品线总裁周跃峰发布系列创新解决方案图源:华为本站附上华为官方新闻稿内容如下:该方案的成本比磁带低20%,功耗比硬盘低90%。根据国外科技媒体blocksandfiles报道,华为发言人还透露了关于该磁电存储解决方案的信息:华为的磁电磁盘(MED)是对磁存储介质的重大创新。第一代ME

Vue3+TS+Vite开发技巧:如何进行数据加密和存储 Vue3+TS+Vite开发技巧:如何进行数据加密和存储 Sep 10, 2023 pm 04:51 PM

Vue3+TS+Vite开发技巧:如何进行数据加密和存储随着互联网技术的快速发展,数据的安全性和隐私保护变得越来越重要。在Vue3+TS+Vite开发环境下,如何进行数据加密和存储,是每个开发人员都需要面对的问题。本文将介绍一些常用的数据加密和存储的技巧,帮助开发人员提升应用的安全性和用户体验。一、数据加密前端数据加密前端加密是保护数据安全性的重要一环。常用

如何在 Windows 11 上清理缓存:详细的带图片教程 如何在 Windows 11 上清理缓存:详细的带图片教程 Apr 24, 2023 pm 09:37 PM

什么是缓存?缓存(发音为ka·shay)是一种专门的高速硬件或软件组件,用于存储经常请求的数据和指令,这些数据和指令又可用于更快地加载网站、应用程序、服务和系统的其他部分。缓存使最常访问的数据随时可用。缓存文件与缓存内存不同。缓存文件是指经常需要的文件,如PNG、图标、徽标、着色器等,多个程序可能需要这些文件。这些文件存储在您的物理驱动器空间中,通常是隐藏的。另一方面,高速缓存内存是一种比主内存和/或RAM更快的内存类型。它极大地减少了数据访问时间,因为与RAM相比,它更靠近CPU并且速度

Ubuntu上的Git安装过程 Ubuntu上的Git安装过程 Mar 20, 2024 pm 04:51 PM

Git是一个快速、可靠、适应性强的分布式版本控制系统。它旨在支持分布式的非线性工作流,使其成为各种规模的软件开发团队的理想选择。每个Git工作目录都是一个独立的存储库,具有所有更改的完整历史记录,并能够跟踪版本,即使没有网络访问或中央服务器。GitHub是托管在云上的Git存储库,它提供了分布式修订控制的所有功能。GitHub是Git的存储库,托管在云上。与作为CLI工具的Git不同,GitHub有一个基于Web的图形用户界面。它用于版本控制,这涉及到与其他开发人员协作,并跟踪随时间推移对脚本和

正确利用sessionStorage保护敏感数据的方法 正确利用sessionStorage保护敏感数据的方法 Jan 13, 2024 am 11:54 AM

如何正确使用sessionStorage存储敏感信息,需要具体代码示例无论是在Web开发还是移动应用开发中,我们常常需要存储和处理敏感信息,如用户登录凭证、身份证号码等。在前端开发中,使用sessionStorage是一种常见的存储方案。然而,由于sessionStorage是基于浏览器的存储,需要注意一些安全性的问题,以确保存储的敏感信息不被恶意访问和利用

推荐最佳的 Windows 11 鼠标光标方案 推荐最佳的 Windows 11 鼠标光标方案 Apr 23, 2023 am 09:52 AM

Windows11拥有看似无限量的自定义选项,从默认设置到Internet上的所有第三方应用程序。甚至有一些应用程序可以改变鼠标光标的外观。修改光标是使计算机具有独特外观的好方法。您不必在每台计算机上粘贴相同的、无聊的黑白指针。但即便如此,您也不必下载软件来更改光标的外观。如何更改光标的外观?Windows11为光标提供了少量的自定义。您可以通过进入控制面板来更改光标,并在此处选择鼠标选项。将出现一个名为“鼠标属性”的新窗口。在鼠标属性中,您可以更改配色方案、大小和设计。您的计算机自然会在其文

交易 | Tesla Model 3 Long Range AWD 重新获得全额 7,500 美元税收优惠,降至 40,000 美元以下 交易 | Tesla Model 3 Long Range AWD 重新获得全额 7,500 美元税收优惠,降至 40,000 美元以下 Jun 19, 2024 am 09:55 AM

去年年底,特斯拉推出 Model 3 Highland 更新后不久,美国联邦电动汽车税收激励规则发生了变化,由于特斯拉在新款 M 中使用了中国磷酸铁锂电池,合格买家的潜在折扣减少了一半。

PHP和swoole如何实现高效的数据缓存和存储? PHP和swoole如何实现高效的数据缓存和存储? Jul 23, 2023 pm 04:03 PM

PHP和swoole如何实现高效的数据缓存和存储?概述:在Web应用开发中,数据的缓存和存储是非常重要的一部分。而PHP和swoole提供了一种高效的方法来实现数据的缓存与存储。本文将介绍如何使用PHP和swoole来实现高效的数据缓存和存储,并给出相应的代码示例。一、swoole简介:swoole是一个针对PHP语言开发的,高性能的异步网络通信引擎,它可以

See all articles