MySQL遍历主要有两种方法:使用游标(Cursor)和使用存储过程,下面分别介绍这两种方法的详细步骤和示例代码。
使用游标(Cursor)遍历
1、声明游标
2、打开游标
3、获取数据
4、关闭游标
5、释放游标
示例代码:
声明变量 DECLARE v_name VARCHAR(20); DECLARE v_age INT; 声明游标 DECLARE cur_student CURSOR FOR SELECT name, age FROM students; 打开游标 OPEN cur_student; 获取数据 FETCH cur_student INTO v_name, v_age; 循环遍历数据 WHILE v_name IS NOT NULL DO 输出数据 SELECT v_name, v_age; 获取下一条数据 FETCH cur_student INTO v_name, v_age; END WHILE; 关闭游标 CLOSE cur_student;
使用存储过程遍历
1、创建存储过程
2、调用存储过程
3、在存储过程中编写遍历逻辑
4、执行存储过程
示例代码:
创建存储过程 DELIMITER // CREATE PROCEDURE traverse_students() BEGIN 声明变量 DECLARE v_name VARCHAR(20); DECLARE v_age INT; 声明游标 DECLARE cur_student CURSOR FOR SELECT name, age FROM students; 定义结束标志,默认为假(false) DECLARE done INT DEFAULT FALSE; 定义处理数据的语句(可选) DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 打开游标 OPEN cur_student; 循环遍历数据 read_loop: LOOP 获取数据 FETCH cur_student INTO v_name, v_age; 如果结束标志为真,跳出循环 IF done THEN LEAVE read_loop; END IF; 输出数据(可选) SELECT v_name, v_age; END LOOP; 关闭游标和释放资源(可选) CLOSE cur_student; END // DELIMITER ;
调用存储过程:
CALL traverse_students();
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。