mysql动态游标与mysql存储过程游标(示例)

发布时间:2020-07-16编辑:脚本学堂
分享一段mysql动态游标的sql语句,通过准备语句、视图和静态游标来实现,用来学习mysql存储过程、mysql游标很不错,有需要的朋友参考下。

本节内容:
mysql动态游标的用法。

sql语句,如下:
 

复制代码 代码示例:

-- 建立测试表和数据
create table webuser (username varchar(10));
insert into webuser values ('a1'),('a2'),('a3'),('b1'),('b2'),('b3');
commit;

-- 建立存储过程
drop procedure if exists dynamic_cursor;
delimiter // www.jb200.com
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');

>>> 您可能感兴趣的文章:
mysql 存储过程用法举例
mysql存储过程学习笔记分享
mysql存储过程中使用游标的实例详解
mysql存储过程遍历表的实例代码
分享:Mysql 5.0存储过程学习总结
mysql存储过程中常用的基本函数
mysql实例:在存储过程中创建表
mysql实例:在存储过程中创建临时表
mysql实例:在存储过程中创建临时表并储存数据
mysql存储过程和触发器的简单例子
mysql存储过程中的三种循环
有关mysql的存储过程与触发器的应用
mysql的存储过程与触发器学习笔记
mysql创建一个简单的存储过程