search
HomeDatabaseMysql Tutorial游标,存储过程
游标,存储过程Jun 07, 2016 pm 02:57 PM
USstoragecursorprocess

游标,存储过程 无 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 ;


Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
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并且速度

正确利用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为光标提供了少量的自定义。您可以通过进入控制面板来更改光标,并在此处选择鼠标选项。将出现一个名为“鼠标属性”的新窗口。在鼠标属性中,您可以更改配色方案、大小和设计。您的计算机自然会在其文

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

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

一文读懂人工智能表:从MindsDB说起一文读懂人工智能表:从MindsDB说起Apr 12, 2023 pm 12:04 PM

本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。对于熟悉数据库操作的同学来说,编写优美的SQL语句,从数据库中想方设法找出自己需要的数据,是常规操作了。而对于熟悉机器学习的同学来说,获取数据,对数据进行预处理,建立模型,确定训练集和测试集,用训练好的模型对未来进行一系列的预测,也是一种常规操作了。那么,我们能否将两种技术结合起来呢?我们看到数据库里存储了数据,而进行预测需要基于以往的数据。如果我们通过数据库里现有的数据,对于未来的数据进行查询的话,那么是

使用PHP数组实现数据缓存和存储的方法和技巧使用PHP数组实现数据缓存和存储的方法和技巧Jul 16, 2023 pm 02:33 PM

使用PHP数组实现数据缓存和存储的方法和技巧随着互联网的发展和数据量的急剧增长,数据缓存和存储成为了我们在开发过程中必须要考虑的问题之一。PHP作为一门广泛应用的编程语言,也提供了丰富的方法和技巧来实现数据缓存和存储。其中,使用PHP数组进行数据缓存和存储是一种简单而高效的方法。一、数据缓存数据缓存的目的是为了减少对数据库或其他外部数据源的访问次数,从而提高

宝塔面板可视化安装Alist网盘神器及配置教程宝塔面板可视化安装Alist网盘神器及配置教程Feb 19, 2024 pm 12:00 PM

Alist是GitHub上的一个开源项目软件,可以轻松便捷地管理网络驱动器和部署本地化网盘。通过Alist添加网络驱动器,将网络驱动映射到本地路径,可以搭建私人磁盘,也可以挂载网盘,因此,Alist是一款支持多种存储网盘的网盘神器,能帮助管理各种网盘应用,支持在Mac,Linux,Windows上使用,操作方便快捷,几乎一键开启(目前仅支持Debian系统)。如果你经常使用网盘等存储服务,使用Alist能帮助你提高不少效率。接下来跟大家分享如何在宝塔面板上可视化安装、配置、部署、使用Alist。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool