mysql游标循环的三种方式及打印结果查看
来源:互联网 发布:山东体育网络电视 编辑:程序博客网 时间:2024/05/23 18:31
1、while方式:
DELIMITER
USE `ct1_test`
DROP PROCEDURE IF EXISTS `searchDate`
CREATE DEFINER=`greesj1b`@`%` PROCEDURE `searchDate`()
BEGIN
DECLARE tmpName VARCHAR(20) DEFAULT '' ;
DECLARE temp_id VARCHAR(1024) DEFAULT '' ;
DECLARE cur1 CURSOR FOR SELECT _id FROM `wp04_project` ORDER BY _id ASC LIMIT 5 ;
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET tmpname = NULL;
OPEN cur1;
FETCH cur1 INTO tmpName;
WHILE ( tmpname IS NOT NULL) DO
/*自己的业务逻辑(我是把字符串相加)*/
SET tmpName = CONCAT(tmpName ," ") ;
SET temp_id = CONCAT(temp_id ,tmpName) ;
FETCH cur1 INTO tmpName;
END WHILE;
CLOSE cur1;
SELECT temp_id ;-- 打印结果
END
DELIMITER ;
2、Repeat方式:
DELIMITER
USE `ct1_test`
DROP PROCEDURE IF EXISTS `searchDate`
CREATE DEFINER=`greesj1b`@`%` PROCEDURE `searchRepeat`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a VARCHAR(200) DEFAULT '';
DECLARE temp_id VARCHAR(1024) DEFAULT '' ;
DECLARE mycursor CURSOR FOR SELECT _id FROM `wp04_project` ORDER BY _id ASC LIMIT 5 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN mycursor;
REPEAT
FETCH mycursor INTO a;
IF NOT done THEN
SET temp_id=CONCAT(temp_id,a,' ');/*字符串相加,自己的业务逻辑*/
END IF;
UNTIL done END REPEAT;
CLOSE mycursor;
SELECT temp_id ;-- 打印结果
END$$
DELIMITER ;
USE `ct1_test`
DROP PROCEDURE IF EXISTS `searchDate`
CREATE DEFINER=`greesj1b`@`%` PROCEDURE `searchRepeat`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE a VARCHAR(200) DEFAULT '';
DECLARE temp_id VARCHAR(1024) DEFAULT '' ;
DECLARE mycursor CURSOR FOR SELECT _id FROM `wp04_project` ORDER BY _id ASC LIMIT 5 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN mycursor;
REPEAT
FETCH mycursor INTO a;
IF NOT done THEN
SET temp_id=CONCAT(temp_id,a,' ');/*字符串相加,自己的业务逻辑*/
END IF;
UNTIL done END REPEAT;
CLOSE mycursor;
SELECT temp_id ;-- 打印结果
END$$
DELIMITER ;
3、Loop方式:
DELIMITER
USE `ct1_test`
DROP PROCEDURE IF EXISTS `searchLoop`
CREATE DEFINER=`greesj1b`@`%` PROCEDURE `searchLoop`()
BEGIN
DECLARE id INT;
DECLARE temp_id VARCHAR(1024) DEFAULT '' ;
DECLARE done INT DEFAULT 0;
DECLARE cur1 CURSOR FOR SELECT _id FROM `wp04_project` ORDER BY _id ASC LIMIT 5 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN cur1;
emp_loop: LOOP
FETCH cur1 INTO id;
IF done=1 THEN
LEAVE emp_loop;
END IF;
SET temp_id=CONCAT(temp_id,id,' ');/*字符串相加,自己的业务逻辑*/
END LOOP emp_loop;
CLOSE cur1;
SELECT temp_id ;-- 打印结果
END
DELIMITER ;
USE `ct1_test`
DROP PROCEDURE IF EXISTS `searchLoop`
CREATE DEFINER=`greesj1b`@`%` PROCEDURE `searchLoop`()
BEGIN
DECLARE id INT;
DECLARE temp_id VARCHAR(1024) DEFAULT '' ;
DECLARE done INT DEFAULT 0;
DECLARE cur1 CURSOR FOR SELECT _id FROM `wp04_project` ORDER BY _id ASC LIMIT 5 ;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
OPEN cur1;
emp_loop: LOOP
FETCH cur1 INTO id;
IF done=1 THEN
LEAVE emp_loop;
END IF;
SET temp_id=CONCAT(temp_id,id,' ');/*字符串相加,自己的业务逻辑*/
END LOOP emp_loop;
CLOSE cur1;
SELECT temp_id ;-- 打印结果
END
DELIMITER ;
执行方法:CALL searchDate()
结果打印:100001 100002 100003 100004 100005
0 0
- mysql游标循环的三种方式及打印结果查看
- 游标、游标及三种循环方式笔记
- Mysql循环的三种方式
- mysql存储过程 游标 查询结果循环
- 利用mysql游标循环结果集
- mysql存储过程 游标 查询结果循环
- Oracle的游标使用方法 三种循环
- 游标的三种定义方式
- mysql查看锁住的表和事务隔离级别及存储过程跳出循环处理方式
- oracle 游标三种循环
- 游标循环结果集
- mysql游标循环的使用
- mysql游标循环的使用
- mysql游标循环的使用
- mysql游标循环的使用
- Mysql----游标的嵌套循环
- mysql游标循环的使用
- mysql游标循环的使用
- WebMagic写的网络爬虫
- 理解OAuth 2.0
- Tomcat 结构图及响应请求的流程
- STL之map基础知识
- c语言程序设计进阶week3:删除字符串中的子串(字符串与指针的完美结合)
- mysql游标循环的三种方式及打印结果查看
- FishC笔记—03 讲:小插曲之变量和字符串
- 深度优先搜索
- 怎样在命令行下查看局域网内IP地址
- js返回上一页
- SVC H.264
- 关于MySql5.7及以上高版本中中文插入读取乱码的问题
- 169. Majority Element
- TCP/IP协议族(二)