mysql迴圈遍歷查詢結果集

2021-10-14 02:00:21 字數 1195 閱讀 1681

-- 建立儲存過程之前需判斷該儲存過程是否已存在,若存在則刪除

drop procedure if exists init_reporturl;

-- 建立儲存過程

create procedure init_reporturl()

begin

-- 定義變數

declare s int default 0

; declare report_id varchar

(255);

declare report_url varchar

(256);

-- 定義游標,並將sql結果集賦值到游標中

declare report cursor for select reportid,reporturl from patrolreporthistory;

-- 宣告當游標遍歷完後將標誌變數置成某個值

declare continue handler for not found set s=1;

-- 開啟游標

open report;

-- 將游標中的值賦值給變數,注意:變數名不要和返回的列名同名,變數順序要和sql結果列的順序一致

fetch report into report_id,report_url;

-- 當s不等於1,也就是未遍歷完時,會一直迴圈

while s<

>1do

-- 執行業務邏輯

update patrolreporthistory set reporturl =

concat

('patrolreport.html?monitorid='

,substring

(report_url,15,

1),'&reportid='

,report_id) where reportid=report_id;

-- 將游標中的值再賦值給變數,供下次迴圈使用

fetch report into report_id,report_url;

-- 當s等於1時表明遍歷以完成,退出迴圈

end while

;-- 關閉游標

close report;

end;

-- 執行儲存過程

call init_reporturl

()

mysql用儲存過程迴圈遍歷操作結果集

最近有個需求,要批量建立一批資料,但要以另一張表篩選出的結果集作為條件,邏輯很簡單,只是需要用到儲存過程,之前都沒用過,所以寫篇文章記錄下,下面的 可以作為示例。建立儲存過程之前需判斷該儲存過程是否已存在,若存在則刪除 drop procedure if exists init template 將...

利用mysql游標迴圈結果集

很多時候自己新增測試資料會用到mysql程式設計,其中儲存過程就非常的重要,所以在這裡寫乙個返回使用者id號用逗號拼接的例子 現在發現mysql完全可以程式設計,一門徹底的程式語言,資料型別還是強型別的,我喜歡 use test delimiter create procedure pro8 out...

mysql 結果集 MySQL結果集處理

問題 1.mysql對查詢的結果集如果返回,一次性還是每條?2.客戶端如何接收結果集?1.對於有返回結果集的查詢,server端和client端互動的資料報由以下組成 p1 meta data packet p2 rows packet pn 1 rows packet pn eof or erro...