gpt4 book ai didi

mysql - mysql中两个游标的嵌套

转载 作者:行者123 更新时间:2023-11-29 21:37:31 27 4
gpt4 key购买 nike

我正在尝试嵌套两个游标。但是我正在获取“declare no_more rows boolean:=FALSE”行的语法。我正在使用 phpMyAdmin 并在 MySQL 控制台上运行。我也可以在不声明存储过程的情况下执行此操作吗?请帮我一下。这件事过去三天让我头疼。以下是我能写的最好的代码:

Delimiter $$
create procedure test1()
BEGIN
BLOCK1: begin
declare v_col1 int(10);
declare no_more_rows boolean1 := FALSE;
declare cursor1 cursor for
select content_id
from topic_list where topic_id=1;
declare continue handler for not found
set no_more_rows1 := TRUE;
open cursor1;
LOOP1: loop
fetch cursor1
into v_col1;
if no_more_rows1 then
close cursor1;
leave LOOP1;
end if;
BLOCK2: begin
declare v_col2 int(10);
declare no_more_rows2 boolean := FALSE;
declare cursor2 cursor for
select content_id
from content_upvotes
where u_id_upvoter = v_col1;
declare continue handler for not found
set no_more_rows2 := TRUE;
open cursor2;
LOOP2: loop
fetch cursor2
into v_col2;
if no_more_rows then
close cursor2;
leave LOOP2;
end if;
end loop LOOP2;
end BLOCK2;
end loop LOOP1;
end BLOCK1;
end $$
DELIMITER ;

最佳答案

如果您检查mysql's documentation on declare syntax ,xou可以看到defsult值是使用DEFAULT关键字设置的,而不是asdignment运算符:

DECLARE var_name [, var_name] ... type [DEFAULT value]

所以,你的声明应该是

declare no_more_rows tinyint(1) default 0;

我还将 bool 类型映射到tinyint(1)。

关于mysql - mysql中两个游标的嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34804802/

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