您的位置
主页 > 网站技术 > 数据库 > » 正文

mysql动态游标学习

来源: 站长圈 点击:

mysql动态游标示例,通过准备语句、视图和静态游标实现,感兴趣的朋友可以参考下!

复制代码 代码如下:

-- 建立测试表和数据

create table webuser (username varchar(10));

insert into webuser values ('a1'),('a2'),('a3'),('b1'),('b2'),('b3');

commit;

-- 建立存储过程

drop procedure if exists dynamic_cursor;

delimiter //

CREATE PROCEDURE dynamic_cursor (IN p_name varchar(10))

BEGIN

    DECLARE done INT DEFAULT 0;

    DECLARE v_username varchar(10);

    DECLARE cur CURSOR for( SELECT username from webuser_view);

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

    DROP VIEW IF EXISTS webuser_view;

    SET @sqlstr = "CREATE VIEW webuser_view as ";

    SET @sqlstr = CONCAT(@sqlstr , "SELECT username FROM webuser WHERE username like '", p_name,"%'");

    PREPARE stmt FROM @sqlstr;

    EXECUTE stmt;

    DEALLOCATE PREPARE stmt;

    OPEN cur;

    f_loop:LOOP 

    FETCH cur INTO v_username;

    IF done THEN

        LEAVE f_loop;  

    END IF;

    SELECT v_username;    

    END LOOP f_loop;

    CLOSE cur;

END;

//

delimiter ;

-- 测试

call dynamic_cursor('a');




首页  - 关于站长圈  - 广告服务  - 联系我们  - 关于站长圈  - 网站地图  - 版权声明