游标的做用就是用于对查询数据库所返回的记录进行遍历,以便进行相应的操做;游标有下面这些属性:数据库
a、游标是只读的,也就是不能更新它;oop
b、游标是不能滚动的,也就是只能在一个方向上进行遍历,不能在记录之间随意进退,不能跳过某些记录;spa
c、避免在已经打开游标的表上更新数据。code
一个游标实例:blog
DROP PROCEDURE IF EXISTS test1; DELIMITER // CREATE PROCEDURE test1(IN input INT,OUT output TEXT) BEGIN DECLARE var VARCHAR(30) ; ##申明变量 DECLARE cus_cursor CURSOR FOR SELECT username FROM aaa_test; ##申明游标
OPEN cus_cursor; ##打开游标 SET output=''; outer_label:LOOP FETCH cus_cursor INTO var; ##移动游标指到第一行,并将结果保存到变量var中 SELECT var; ##查看变量结果
SET output=CONCAT(output,';',var); ##拼接字符串,并做为输出参数输出。
IF var='loop_name_1' THEN ##判断游标索引所在位置的列的结果是否是等于loop_name_1,如果则终止循环 LEAVE outer_label; ##跳出循环 END IF; END LOOP outer_label; CLOSE cus_cursor; ##关闭游标 END// SET @input=0; CALL test1(@input,@output);
SELECT @output; ##查看输出参数中的字符串
其中:索引
输出结果:字符串