欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql儲存過程遍歷每條數(shù)據(jù)

黃文隆2年前9瀏覽0評論

MySQL 儲存過程是一段預定義的 SQL 語句,它們被存儲在數(shù)據(jù)庫中并被多次調(diào)用。儲存過程可以包含條件、循環(huán)、變量等等的 SQL 語句。

儲存過程在實際開發(fā)中的應用非常廣泛,比如我們可以利用儲存過程遍歷每一行數(shù)據(jù)。

-- 創(chuàng)建 test 表
CREATE TABLE test (
id INT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50)
);
-- 插入數(shù)據(jù)
INSERT INTO test (name) VALUES ('Tom'), ('Jerry'), ('Jack'), ('Lucy'), ('Lily');

上面我們創(chuàng)建了一個名為 test 的表,并插入了五行數(shù)據(jù)。下面我們來寫一個儲存過程,遍歷這個表里的每一行數(shù)據(jù):

DELIMITER $$
CREATE PROCEDURE traverse_test()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE id INT;
DECLARE name VARCHAR(50);
DECLARE cur CURSOR FOR SELECT id, name FROM test;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur;
loop_start:
FETCH cur INTO id, name;
IF done THEN
LEAVE loop_end;
END IF;
-- 你的操作
-- 可以在這里對每一行數(shù)據(jù)進行操作,比如輸出、保存等等
SELECT id, name;
GOTO loop_start;
END LOOP loop_end;
CLOSE cur;
END $$

在上述代碼中,我們先定義了一個名為 done 的變量,用于表示是否循環(huán)完畢,接著定義了一個名為 cur 的游標,用于將表中所有數(shù)據(jù)查詢出來。

在 for 循環(huán)中,我們使用了 FETCH 語句來遍歷每一行數(shù)據(jù),并對每一行數(shù)據(jù)進行操作,如 select id, name 或者其它操作。

最后我們執(zhí)行游標的 CLOSE 語句,結束程序的執(zhí)行。執(zhí)行儲存過程 traverse_test() 即可遍歷 test 表中的每一行數(shù)據(jù)。