MySQL中的游標是一種處理查詢結果集的機制,在存儲過程中經常用到。但是,需要注意的是MySQL的游標只能用于存儲過程中,不能用于普通的SQL語句或者程序中。
-- 示例存儲過程 CREATE PROCEDURE myProc() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE name VARCHAR(20); -- 定義游標 DECLARE cur CURSOR FOR SELECT name FROM myTable; -- 聲明異常處理 DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- 打開游標 OPEN cur; -- 循環處理結果集 myLoop: LOOP -- 獲取一條記錄 FETCH cur INTO name; -- 判斷是否結束循環 IF done THEN LEAVE myLoop; END IF; -- 處理一條記錄 SELECT CONCAT('Hello, ', name); END LOOP; -- 關閉游標 CLOSE cur; END;
以上是一個簡單的存儲過程示例,其中定義了一個游標用于獲取myTable表中的name列,并循環遍歷結果集并輸出。在存儲過程中使用游標可以方便地進行結果集處理,但需要注意的是游標的使用需要謹慎,因為可能會影響性能。
下一篇mysql游標性能