zoukankan      html  css  js  c++  java
  • 【转载】如何在MySQL存储过程中遍历查询结果集

    转载地址:http://blog.jinshui8.com/blog/view/id-37.html

    在储过程中循环查询结果需要使用到CURSOR(光标)

    sql Code
    1. 
      CREATE PROCEDURE curdemo()
      
    2. 
      BEGIN
      
    3. 
        DECLARE done INT DEFAULT 0;
      
    4. 
        DECLARE a INT;
      
    5. 
        DECLARE b CHAR(225);
      
    6. 
        DECLARE cur CURSOR FOR SELECT id,title FROM test.t1; -- 这个语句声明一个光标保存记录集。也可以在子程序中定义多个光标,但是一个块中的每一个光标必须有唯一的名字
      
    7. 
        DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
      
    8. 
       
      
    9. 
        OPEN cur;
      
    10. 
       
      
    11. 
        REPEAT -- 循环
      
    12. 
          FETCH cur INTO a, b;-- 这个语句用指定的打开光标读取下一行(如果有下一行的话),并且前进光标指针
      
    13. 
          IF NOT done THEN
      
    14. 
             INSERT INTO test.t2 VALUES (a,b);
      
    15. 
          END IF;
      
    16. 
        UNTIL done END REPEAT;-- 结束循环
      
    17. 
       
      
    18. 
        CLOSE cur;-- 这个语句关闭先前打开的光标。
      
    19. 
      END
      
    Parsed in 0.011 seconds at 65.03 KB/s, using GeSHi 1.0.8.11

    本文为原创,如需转载请注明出处和本文链接!

  • 相关阅读:
    lightoj1140_数位dp
    lightoj1057_状压dp
    lightoj1068_数位dp
    lightoj1018_状压dp
    lightoj1217_简单dp
    lightoj1119_简单状压dp
    lightoj1037_状压dp
    lightoj1110_LCS并输出
    图论算法----最短路
    poj1182 食物链
  • 原文地址:https://www.cnblogs.com/linewman/p/9918267.html
Copyright © 2011-2022 走看看