gpt4 book ai didi

mysql - 显然 fetch 返回 NULL

转载 作者:可可西里 更新时间:2023-11-01 06:55:56 28 4
gpt4 key购买 nike

我正在学习 mysql 中的存储过程和游标,我偶然发现了它:

delimiter //

CREATE PROCEDURE some_func()
BEGIN
DECLARE link_rewrite VARCHAR(255);
DECLARE link_rewrite_cursor CURSOR FOR SELECT link_rewrite FROM prod;

OPEN link_rewrite_cursor;

SET @count = 0;

WHILE @count < 10 DO
FETCH link_rewrite_cursor INTO link_rewrite;
SELECT link_rewrite;
set @count = @count + 1;
END WHILE;

CLOSE link_rewrite_cursor;

END//

delimiter ;

我的问题是:为什么 SELECT link_rewrite 总是返回 NULL(在 prod 表中有 9000 行)。 SELECT link_rewrite FROM prod 返回很多行(9000 行)。

最佳答案

您应该避免对多个不同的事物使用相同的名称。具体来说,为变量指定一个与您选择的列不同的名称。例如,如果您重命名变量 v_link_rewrite 那么它可能会起作用:

delimiter //

DROP PROCEDURE IF EXISTS some_func //

CREATE PROCEDURE some_func()
BEGIN
DECLARE v_link_rewrite VARCHAR(255);
DECLARE link_rewrite_cursor CURSOR FOR SELECT link_rewrite FROM prod;

OPEN link_rewrite_cursor;

SET @count = 0;

WHILE @count < 10 DO
FETCH link_rewrite_cursor INTO v_link_rewrite;
SELECT v_link_rewrite;
set @count = @count + 1;
END WHILE;

CLOSE link_rewrite_cursor;

END//

delimiter ;

关于mysql - 显然 fetch 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8731779/

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