mysql 游標使用


在mysql操作中,有時需要對查出的結果集進行每條記錄操作時,可以使用游標來處理,游標充當了指針的作用,每次指向結果集中的一條記錄

使用語法:

  1.   聲明一個游標: declare 游標名稱 CURSOR for record;(record可以為任意查詢的結果集)
  2.     打開定義的游標:open 游標名稱;
  3.     獲得下一行數據:FETCH  游標名稱 into testrangeid,versionid;
  4.     需要執行的語句(增刪改查):這里視具體情況而定
  5.     釋放游標:CLOSE 游標名稱;

示例:

BEGIN
    # 遍歷停止標識
    DECLARE done INT DEFAULT FALSE;
    
    # 商品名稱
    DECLARE good_name VARCHAR(20);
    DECLARE count INT DEFAULT 0;
    # 總數
    DECLARE total INT DEFAULT 0;

    # 游標定義,此處為后面查詢的結果集,游標類似於指針作用,每次指向一條記錄,從而對當前的這條記錄進行操作
    DECLARE cur CURSOR FOR SELECT tg.good_name, od.count FROM t_order_detail od LEFT JOIN t_goods tg ON od.goods_id = tg.id WHERE od.goods_id = 1;
    
    # 當沒有找到記錄時設置遍歷標識
    DECLARE continue HANDLER FOR NOT FOUND SET done = TRUE;
    
    # 打開定義的游標
    OPEN cur;
    # 獲取下一行數據
    FETCH cur INTO good_name, count;
    # 遍歷處理
    WHILE NOT done DO
        SET total = total + 1;
        # 獲取下一行數據
        FETCH cur INTO good_name, count;
    END WHILE;

    # 關閉釋放游標
    CLOSE cur;
    SELECT total;

END

最后SELECT total是為了查看total結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM