mysql 存储过程 cursor 范例

declare v_total int default 0;
declare no_list cursor for select no,id from table;
select count(1) into v_total from table;

open no_list;
loop1:loop
-- mysql cursor 不会自动退出cursor 循环,需自行增加条件判断
IF i > v_total THEN LEAVE loop1; end if;
-- 根据游标当前指向的一条数据
fetch no_list into v_no , v_id ;

--do operation here

set i = i+1;
end loop;
close no_list;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL存储过程中的Cursor可以用于遍历查询结果集。可以通过以下步骤来使用Cursor: 1. 定义Cursor:在存储过程中使用DECLARE语句定义Cursor及其相关变量。 2. 打开Cursor:使用OPEN语句打开Cursor,并指定要遍历的查询结果集。 3. 获取数据:使用FETCH语句获取当前行的数据,并将其存储在相关变量中。 4. 处理数据:使用获取到的数据进行相关处理。 5. 循环遍历:使用WHILE循环语句来遍历所有的查询结果行。 6. 关闭Cursor:使用CLOSE语句关闭Cursor。 下面是一个简单的示例存储过程,使用Cursor来遍历查询结果集: ``` DELIMITER // CREATE PROCEDURE cursor_demo() BEGIN DECLARE done INT DEFAULT FALSE; DECLARE customer_id INT; DECLARE customer_name VARCHAR(255); DECLARE cur CURSOR FOR SELECT id, name FROM customers; DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; OPEN cur; read_loop: LOOP FETCH cur INTO customer_id, customer_name; IF done THEN LEAVE read_loop; END IF; -- 处理数据 SELECT CONCAT('Customer ID: ', customer_id, ', Name: ', customer_name); END LOOP; CLOSE cur; END // DELIMITER ; ``` 在上面的示例中,存储过程定义了一个名为`cur`的Cursor,该Cursor从`customers`表中获取`id`和`name`两列数据。然后通过WHILE循环语句,遍历所有的查询结果行,并将`customer_id`和`customer_name`两个变量存储当前行的数据。最后使用`SELECT`语句输出了当前行的数据。 注意,在使用Cursor时,需要使用`DECLARE`语句定义相关变量,并使用`OPEN`语句打开Cursor,使用`CLOSE`语句关闭Cursor。同时,需要使用`FETCH`语句获取当前行的数据,并使用`WHILE`循环语句遍历所有查询结果行。另外,在遍历结果集时,需要使用`DECLARE CONTINUE HANDLER`语句来设置不同的错误处理程序,以便在遍历结束时正确关闭Cursor
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值