gpt4 book ai didi

mysql - 使用游标重复最后返回的行

转载 作者:行者123 更新时间:2023-11-29 04:22:18 33 4
gpt4 key购买 nike

我有一个像这样命名为 TRY 的表....

try(name,sal) values('tony',10000),('david',20000),('rony',30000),('sami',40000)

现在我在一个过程中使用游标来通过一个变量显示工资列的所有值。这样做我试图弄清楚游标是否有效,因为我是游标的新手而且我已经来了知道游标逐行获取每个选定的行。我正在执行以下代码...

 delimiter ;;

create procedure me()

begin

declare done int default 0;

declare var int;

declare cur cursor for select sal from try;

declare continue handler for not found set done=1;

open cur;

curloop:loop

if done=1 then

leave curloop;

end if;

fetch cur into var;

select var;

end loop;

close cur;

end;;

使用它我正确地获取了 SAL 列的所有值,但问题是它返回了一个额外的行,该行与 SAL 列的最后一个值重复,即我正在重复最后一个值。

请解决我的问题。提前致谢。

最佳答案

您需要稍微更改一下功能,在 FETCH 操作之后检查 done -

CREATE PROCEDURE me()
BEGIN
DECLARE done int DEFAULT 0;
DECLARE var int;
DECLARE cur CURSOR FOR SELECT sal FROM try;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;

OPEN cur;

curloop:
LOOP

FETCH cur INTO var;
IF done THEN
LEAVE curloop;
END IF;

SELECT var;

END LOOP;

CLOSE cur;
END

关于mysql - 使用游标重复最后返回的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20511572/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com