1、游标的作用:
一般检索出来的结果都是符合条件的一组结果集合,有时需要在检索出来的结果中前进或后退一行或多行,这时就需要使用游标。
游标是一个存储在MySql服务器上的数据库查询,它不是一条select语句,而是被该语句检索出来的结果集。MySql的游标只能用于存储过程。
2、使用游标步骤
1)声明
2)打开
3) 使用
4)关闭
声明后可根据需要频繁打开关闭,打开游标后可多次取数据。
3、实例
Create Procedure processOrders()
begin
DECLARE Done BOOLEAN DEFAULT 0;//默认false
DECLARE OrderNo INT;
DECLARE OrderNumbers CURSOR FOR SELECT order_num from Orders;
//声明游标,此时select语句并没有执行
DECLARE CONTIUNE HANDLDER FOR SQLSTATE '02000' SET Done = 1;
//声明循环条件,当 SQLSTATE为 '02000'(已经没有数据可取时的状态 ),done将会被设置为1。
OPEN OrderNumbers;//打开游标,此时执行了select语句,有了数据集
REPEAT
FETCH OrderNumbers INTO OrderNo;//得到游标当前对应的行的 order_Num。fetch从第一行开始自动检索当前行的order_num列,
。。。//对获取到的order_Num进行处理
UNTIL Done END REPEAT;//循环结束条件
CLOSE OrderNumbers;//关闭游标
end;