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

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











이 웹사이트는 3월 7일 화웨이의 데이터 스토리지 제품 라인 사장인 Zhou Yuefeng 박사가 최근 MWC2024 컨퍼런스에 참석하여 웜 데이터(WarmData)와 콜드 데이터(ColdData)용으로 설계된 차세대 OceanStorArctic 자전 스토리지 솔루션을 구체적으로 시연했다고 보도했습니다. Huawei의 데이터 스토리지 제품 라인 사장 Zhou Yuefeng은 일련의 혁신적인 솔루션을 출시했습니다. 이미지 출처: 이 사이트에 첨부된 Huawei의 공식 보도 자료는 다음과 같습니다. 이 솔루션의 가격은 자기 테이프보다 20% 저렴하며, 전력 소비는 하드 디스크보다 90% 낮습니다. 해외 기술 매체인 blockandfiles에 따르면, Huawei 대변인은 자기전기 저장 솔루션에 대한 정보도 공개했습니다. Huawei의 자기전자 디스크(MED)는 자기 저장 매체의 주요 혁신입니다. 1세대 ME

Vue3+TS+Vite 개발 팁: 데이터를 암호화하고 저장하는 방법 인터넷 기술의 급속한 발전으로 인해 데이터 보안 및 개인 정보 보호가 점점 더 중요해지고 있습니다. Vue3+TS+Vite 개발 환경에서 데이터를 암호화하고 저장하는 방법은 모든 개발자가 직면해야 하는 문제입니다. 이 기사에서는 개발자가 애플리케이션 보안 및 사용자 경험을 개선하는 데 도움이 되는 몇 가지 일반적인 데이터 암호화 및 저장 기술을 소개합니다. 1. 데이터 암호화 프런트엔드 데이터 암호화 프런트엔드 암호화는 데이터 보안을 보호하는 중요한 부분입니다. 일반적으로 사용되는

캐시란 무엇입니까? 캐시(ka·shay로 발음)는 자주 요청되는 데이터 및 지침을 저장하는 데 사용되는 특수 고속 하드웨어 또는 소프트웨어 구성 요소로, 웹 사이트, 애플리케이션, 서비스 및 기타 시스템 측면을 더 빠르게 로드하는 데 사용할 수 있습니다. . 캐싱을 사용하면 가장 자주 액세스하는 데이터를 쉽게 사용할 수 있습니다. 캐시 파일은 캐시 메모리와 동일하지 않습니다. 캐시 파일은 여러 프로그램에서 필요할 수 있는 PNG, 아이콘, 로고, 셰이더 등과 같이 자주 필요한 파일을 의미합니다. 이러한 파일은 일반적으로 숨겨져 있는 실제 드라이브 공간에 저장됩니다. 반면에 캐시 메모리는 주 메모리 및/또는 RAM보다 빠른 메모리 유형입니다. CPU에 더 가깝고 RAM에 비해 빠르기 때문에 데이터 액세스 시간을 크게 줄입니다.

Git은 빠르고 안정적이며 적응력이 뛰어난 분산 버전 제어 시스템입니다. 분산된 비선형 워크플로를 지원하도록 설계되어 모든 규모의 소프트웨어 개발 팀에 이상적입니다. 각 Git 작업 디렉터리는 모든 변경 사항에 대한 전체 기록을 보유하고 네트워크 액세스나 중앙 서버 없이도 버전을 추적할 수 있는 독립적인 저장소입니다. GitHub는 분산 개정 제어의 모든 기능을 제공하는 클라우드에 호스팅되는 Git 저장소입니다. GitHub는 클라우드에서 호스팅되는 Git 저장소입니다. CLI 도구인 Git과 달리 GitHub에는 웹 기반 그래픽 사용자 인터페이스가 있습니다. 이는 다른 개발자와 협력하고 스크립트 변경 사항을 추적하는 버전 제어에 사용됩니다.

sessionStorage를 올바르게 사용하여 민감한 정보를 저장하려면 특정 코드 예제가 필요합니다. 웹 개발이든 모바일 애플리케이션 개발이든 사용자 로그인 자격 증명, ID 번호 등과 같은 민감한 정보를 저장하고 처리해야 하는 경우가 많습니다. 프런트엔드 개발에서는 sessionStorage를 사용하는 것이 일반적인 스토리지 솔루션입니다. 그러나 sessionStorage는 브라우저 기반 스토리지이기 때문에 저장된 민감한 정보가 악의적으로 접근 및 사용되지 않도록 몇 가지 보안 문제에 주의가 필요합니다.

Windows 11에는 기본 설정부터 인터넷의 모든 타사 앱에 이르기까지 겉보기에 무제한의 사용자 지정 옵션이 있습니다. 마우스 커서의 모양을 변경할 수 있는 앱도 있습니다. 커서를 수정하는 것은 컴퓨터에 독특한 모양을 부여하는 좋은 방법입니다. 모든 컴퓨터에 똑같은 지루한 흑백 포인터를 붙일 필요는 없습니다. 하지만 그렇더라도 커서 모양을 변경하기 위해 소프트웨어를 다운로드할 필요는 없습니다. 커서 모양을 변경하는 방법은 무엇입니까? Windows 11에서는 커서에 대해 약간의 사용자 지정 기능을 제공합니다. 제어판으로 이동하여 마우스 옵션을 선택하면 커서를 변경할 수 있습니다. "마우스 속성"이라는 새 창이 나타납니다. 마우스 속성에서 색 구성표, 크기, 디자인을 변경할 수 있습니다. 컴퓨터는 자연스럽게

Tesla가 작년 말에 Model 3 Highland 리프레시를 출시한 직후, 미국 연방 EV 세금 인센티브 규칙이 변경되어 Tesla가 신형 M에 중국 LFP 셀을 사용했기 때문에 적격 구매자에 대한 잠재적 할인이 절반으로 줄었습니다.

PHP와 Swoole은 어떻게 효율적인 데이터 캐싱 및 저장을 달성합니까? 개요: 웹 애플리케이션 개발에서 데이터 캐싱 및 저장은 매우 중요한 부분입니다. PHP와 Swoole은 데이터를 캐시하고 저장하는 효율적인 방법을 제공합니다. 이 기사에서는 PHP와 Swoole을 사용하여 효율적인 데이터 캐싱 및 저장을 달성하는 방법을 소개하고 해당 코드 예제를 제공합니다. 1. swoole 소개: swoole은 PHP 언어용으로 개발된 고성능 비동기 네트워크 통신 엔진입니다.
