作者:少唇_200 | 来源:互联网 | 2023-05-18 22:35
mysql存储过程游标中使用变量的问题最近学习存储过程,我想在其中使用游标并在游标中加入变量,我知道我下面的写法不对,请好心人帮忙看下SQLcodecreateprocedureg
mysql 存储过程 游标中使用变量的问题
最近学习存储过程,我想在其中使用游标并在游标中加入变量,我知道我下面的写法不对,请好心人帮忙看下
SQL code
create procedure getFilmInfo (in name varchar(100)) begin DECLARE done INT DEFAULT 0; declare filmName varchar(100); declare revenue double; declare directorInfoCur cursor for select film.filmName, film.revenue from film where film.directorName like '%name/%'; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET dOne= 1; open directorInfoCur; repeat fetch directorInfoCur into filmName, revenue; if not done then select filmName, revenue; end if; until done end repeat; close directorInfoCur; end
欢迎大家阅读《Mysql 存储过程 游标中使用变量的有关问题》,跪求各位点评,by
——解决方案——————–
declare directorInfoCur cursor for select film.filmName, film.revenue from film where film.directorName like concat(‘%’,name,’/%’);
——解决方案——————–
declare directorInfoCur cursor for select film.filmName, film.revenue from film where film.directorName like concat(‘%’,name,’/%’);
——解决方案——————–
没有用的,MySQL游标是不允许为动态的,而且你的查询条件为变量,导致整个游标成为动态SQL….
而MySQL游标是不支持动态游标的
推荐:
淘宝和阿里巴巴去Oracle化事件 引发数据库技术人员大讨论
MySQL数据库开源软件版本 生产环境GA版本如何选择
——解决方案——————–
不能动态就把结果集放入有自增字段的临时表里
然后用自增字段循环处理就可以了