MySQL -如何在游标where子句中使用变量



我通常使用Oracle数据库,当创建存储过程时,可以编写游标,其中where子句可以有一个变量,该变量的值可以在运行时提供。如何在mySQL中编写类似的内容

之类的

OPEN myCursor ("NEW");

可以在游标定义中使用用户自定义变量和/或局部变量(包括过程参数),既可以在外部赋值,也可以在内部计算:

CREATE PROCEDURE test_proc( {parameters} )
BEGIN
DECLARE _id_ INT;
DECLARE cur CURSOR FOR
SELECT id FROM test WHERE val = {variable};
DECLARE EXIT HANDLER FOR NOT FOUND 
BEGIN
CLOSE cur;
END;

OPEN cur;
LOOP
FETCH cur INTO _id_;
SELECT _id_;
END LOOP;
END

但是您不能"动态地"更改参数。-打开游标后,其参数的变化将被忽略(在打开游标的过程中,游标的文本是固定的,在固定的文本中使用值而不是名称)。

因此,当您需要更改动态分配的参数时,必须关闭并重新打开游标。

演示小提琴

相关内容

  • 没有找到相关文章

最新更新