在 MySQL 中,可以使用循環語句 WHILE
或 REPEAT
來循環查詢數據。以下是一個簡單的例子:
假設有一個名為 users
的表,包含 id
和 name
兩個字段,現在要循環查詢所有用戶的名字:
DELIMITER $$
CREATE PROCEDURE get_users()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE user_id INT;
DECLARE user_name VARCHAR(255);
DECLARE cur CURSOR FOR SELECT id, name FROM users;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur;
get_users_loop: LOOP
FETCH cur INTO user_id, user_name;
IF done = 1 THEN
LEAVE get_users_loop;
END IF;
-- 這里可以對每一條數據進行處理,例如輸出到控制臺
SELECT user_name;
END LOOP;
CLOSE cur;
END$$
DELIMITER ;
然后調用存儲過程 get_users()
來執行循環查詢:
CALL get_users();
這樣就可以循環查詢 users
表中的所有用戶數據。需要注意的是,循環查詢可能會增加數據庫的負擔,盡量避免在大數據量下使用循環查詢。