MySQL存過中的游標循環可用于遍歷結果集并根據需要執行某些操作。它通常用于需要復雜計算或數據處理的存儲過程中。
以下是一個簡單的MySQL游標循環示例:
DELIMITER // CREATE PROCEDURE `your_procedure_name`() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE your_variable_name INT; DECLARE cursor_name CURSOR FOR SELECT id FROM your_table_name; -- 需要遍歷的結果集 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cursor_name; read_loop: LOOP FETCH cursor_name INTO your_variable_name; IF done THEN LEAVE read_loop; END IF; -- 執行某個操作或計算 END LOOP; CLOSE cursor_name; END // DELIMITER ;
以上示例中,游標名為cursor_name,結果集為SELECT id FROM your_table_name,游標循環中使用FETCH語句將結果集中的數據逐一讀取到your_variable_name變量中。如果結果集中的所有數據都已被讀取,則CONTINUE HANDLER將被觸發,done變量將被賦值為TRUE,并退出循環。
在游標循環中,可以根據需要執行任何操作或計算,例如修改數據、插入數據或計算合計值等。