赞
踩
DECLARE cursor_name CURSOR FOR select_statement
OPEN cursor_name ;
FETCH cursor_name INTO var_name [, var_name] ...
CLOSE cursor_name ;
-
- drop procedure if exists test_cursor ;
- -- delimiter表示以//结束编译
- delimiter //
-
- create procedure getResultFromTest(out result varchar(128))
- begin
- -- 游标所使用变量需要在定义游标之前申明
- declare id int(11);
- declare name varchar(20);
- -- 遍历数据结束标志 注意位置顺序
- DECLARE done INT DEFAULT FALSE;
- -- 注意用别名 因为id在上面已经有定义所以需要使用表的别名区别
- declare cur_test CURSOR for select t.id,t.name from test t;
- -- 将结束标志绑定到游标
- DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
- open cur_test;
- repeat
- fetch cur_test into id, name;
- select id ;
- -- concat_ws函数用逗号后面的参数隔开 concat_ws(',','12','33','332') --> 12,33,332
- select concat_ws(',',result,id,name) into result ;
- until done
- end repeat;
- --注意关闭游标
- close cur_test;
-
- select result ;
- end;
- //
- delimiter ;
-
- mysql>set @id = ''; --需要赋值 否则报错
- mysql>call getResultFromTest(@id);
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。