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

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

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

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

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

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

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

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

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


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Dreamweaver CS6
視覺化網頁開發工具

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

記事本++7.3.1
好用且免費的程式碼編輯器

DVWA
Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中