读书人

mysql 存储过程跟 之间的嵌套

发布时间: 2012-07-26 12:01:08 作者: rapoo

mysql 存储过程和 之间的嵌套

DELIMITER $$USE `mydatabase`$$DROP PROCEDURE IF EXISTS `myProcs`$$CREATE DEFINER=`root`@`localhost` PROCEDURE `myProcs`(IN MAIN_ID INT)BEGINDECLARE ID INT ;        DECLARE brandId VARCHAR(255);                            DECLARE l_find_pos   INT;        DECLARE l_new_string VARCHAR(255);                 DECLARE STOP INT DEFAULT 0;           DECLARE cur CURSOR FOR SELECT a.id ,aitem.brandId FROM a LEFT JOIN aitem ON a.id=aitem.aId WHERE a.id=MAIN_ID ;        DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET STOP=1;                          SET l_new_string='';        OPEN cur;               FETCH cur INTO id,brandId;                    WHILE STOP <> 1 DO         -- 各种判断  SET l_find_pos=INSTR(l_new_string,brandId);IF (l_find_pos=0) THENSET l_new_string = CONCAT(brandId,',',l_new_string);END IF;                  -- 读取下一行的数据           FETCH cur INTO id,brandId;      END WHILE;  -- 循环结束      CLOSE cur; -- 关闭游标       #SET  ttt=l_new_string;     IF (LENGTH (l_new_string)>0) THEN      SET l_new_string = LEFT(l_new_string,LENGTH (l_new_string)-1);      END IF;     UPDATE a SET brandId = l_new_string WHERE a.id=MAIN_ID ;    END$$DELIMITER ;



读书人网 >Mysql

热点推荐