`
eric_hwp
  • 浏览: 126024 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MySQL游标嵌套循环存储过程

 
阅读更多
BEGIN
   DECLARE _uuid VARCHAR(60); 
   DECLARE _labels varchar(100);
   DECLARE done int DEFAULT 0;
   DECLARE _result VARCHAR(200);
   DECLARE _name VARCHAR(60);
   DECLARE token int DEFAULT 0;
   
   #定义游标
   DECLARE rs_cursor CURSOR FOR SELECT uuid FROM product;
   #游标结束条件
   DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
    #打开游标
   OPEN rs_cursor;
   cursor_loop:LOOP
     FETCH rs_cursor INTO _uuid;
		 IF done = 1 THEN 
		      LEAVE cursor_loop; 
		 END IF;
     SET _result='',_name='';
     BEGIN 
         DECLARE 
		rs_cursor_item CURSOR 
	FOR 
		select f.name as name from func_prod_map p LEFT JOIN product_func f on p.func_uuid = f.uuid WHERE p.product_uuid = _uuid;
					#游标结束条件
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET token=1; 
        OPEN rs_cursor_item;
	   REPEAT
		FETCH rs_cursor_item INTO _name;
           
	   #SELECT _name;
           IF token <> 1 THEN
		SET _result = CONCAT(_result,_name,',');
           END IF;
          
	 #UNTIL token=1 END REPEAT ;
         UNTIL token = 1 END REPEAT;
	 CLOSE rs_cursor_item;
         SET token=0;
         UPDATE product SET labels = _result WHERE uuid = _uuid; 
         SET _result='',_name='';
     END;
   END LOOP;
   CLOSE rs_cursor;
END

 

 

分享到:
评论

相关推荐

    mysql游标嵌套[文].pdf

    该存储过程使用游标嵌套来实现数据初始化。 在存储过程中,我们首先定义了多个变量,用于存储用户信息和参数信息。然后,我们使用 WHILE 循环来插入用户数据和参数数据。每次循环,我们使用游标嵌套来插入用户参数...

    Mysql存储过程循环内嵌套使用游标示例代码

    总结来说,这个示例展示了如何在MySQL存储过程中使用游标进行循环处理,并在循环内部再次嵌套游标以实现更精细的数据操作。这种技术在处理大量数据或执行复杂逻辑时非常有用,尤其是在需要逐行检查和处理数据的情况...

    mysql游标详解

    MySQL 从 5.0 版本开始支持存储过程和触发器,而游标在递归树结构中非常有用。游标是 MySQL 中的一种机制,允许开发人员在存储过程和触发器中控制数据的获取和处理。 在 MySQL 中,游标是通过 DECLARE 语句定义的,...

    mysql游标

    除了基础的游标操作,MySQL还支持其他特性,如:嵌套游标(一个游标内部使用另一个游标)、可滚动游标(允许向前和向后移动)以及隐式游标(无需显式声明,常在存储过程中使用)。 在实际应用中,游标常常用于以下...

    mysql 多个游标依次执行

    mysql存储过程 多个游标循环(依次执行,非嵌套循环)REPEAT循环。有需要的可自行下载。

    mysql存储过程双层嵌套

    loop 游标双层嵌套循环 创建临时表, 游标

    Mysql的游标的定义使用及关闭深入分析

    以上就是MySQL游标的定义、使用和关闭的基本概念以及如何处理游标循环的细节。理解这些概念对于编写涉及复杂数据处理的存储过程至关重要。记住,游标虽然提供了逐行处理数据的能力,但也需要注意性能影响,因为它们...

    MySQL 5.0存储过程

    MySQL 5.0版本还引入了几个新特性,比如支持嵌套存储过程、游标和事务控制。嵌套存储过程允许在一个过程中调用另一个过程,增加了代码的模块化和复用性。游标则允许在过程内部逐行处理结果集,这对于迭代操作非常...

    mysql存储过程之代码块条件控制迭代.docx

    总的来说,MySQL存储过程中的代码块、条件控制、迭代以及游标和处理器的使用,共同构建了一个强大的数据库编程环境,能够处理复杂的业务逻辑和数据操作。理解并熟练掌握这些概念,对于提升数据库应用的效率和灵活性...

    mysql 面试题.zip

    8. **MySQL游标** (05 MySQL游标.pptx) - 游标的概念和使用:学习如何在循环中逐行处理查询结果,提供更灵活的数据处理能力。 9. **50道myaql不全 不保证准确性.txt** 和 **MySql第二章练习.txt** - 这些可能是...

    MySQL性能优化中文手册

    优化存储过程时,应尽量减少嵌套循环和复杂的逻辑判断,使用适当的变量和游标来控制流程。同时,注意参数化查询可以防止SQL注入并提高执行效率。 函数优化通常涉及内置函数的使用和自定义函数的编写。内置函数已经...

    mysql 存储过程输入输出参数示例

    drop PROCEDURE if exists my_procedure; create PROCEDURE my_procedure(in my_id int,out my_name... 您可能感兴趣的文章:Mysql存储过程循环内嵌套使用游标示例代码MySQL 存储过程中执行动态SQL语句的方法Mysql存储过

    存储过程

    5. **嵌套存储过程**:在一个存储过程中调用另一个存储过程。 6. **递归存储过程**:在满足一定条件时自我调用。 三、存储过程的调用方式 1. **直接调用**:在SQL语句中直接使用CALL语句。 2. **通过程序调用**:在...

    MySQL 有输入输出参数的存储过程实例

    关于MySQL存储过程,还有更多高级特性,如局部变量、游标、异常处理、递归等。在错误处理方面,可以使用`DECLARE HANDLER`来捕获和处理特定的错误情况。存储过程间可以相互调用,通过`CALL`语句嵌套执行。此外,还...

    dbmove_sql语句转化.zip_MYSQL_dbmove_oracle

    Oracle中的游标和FOR循环在MySQL中通常需要用DECLARE、OPEN、FETCH和CLOSE等语句来实现,或者直接用嵌套的SELECT语句。 6. **连接与子查询**: Oracle的CONNECT BY用于构建层次查询,而在MySQL中可能需要递归的...

    MySQL必知必会_dotzgx_MYSQL_

    理解如何声明、打开、读取和关闭游标,以及在存储过程中如何使用它们。 8. **触发器**:触发器是数据库自动执行的预定义操作,当特定的DML(INSERT、UPDATE、DELETE)事件发生时触发。它们可以实现业务规则的自动化...

Global site tag (gtag.js) - Google Analytics