gpt4 book ai didi

Mysql 存储过程问题与 varchar 变量在 where 子句

转载 作者:行者123 更新时间:2023-11-29 02:25:12 25 4
gpt4 key购买 nike

我在 mysql 存储过程中遇到问题,其中 where 子句中的 varchar 变量不返回结果。查询如下。

declare itcode varchar(30);
declare qty int;
declare finished int;
declare testc cursor for
select itemcode from mytable limit 0,10;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = 1;
open testc;
read_loop:Loop
fetch testc into itcode;
if finished=1 then
leave read_loop;
end if;
select sum(Qty) as total from
mytable2
where itemcode=itcode;
end loop;
close testc;

在上面的语句中,即使项目代码存在于两个表中,它也返回 null。但是,如果我在 where close 上使用手动分配的值编写语句,如下所示。

select sum(Qty) as total from mytable2 where itemcode='p2343';

我不明白为什么 varchar 变量对 where 子句不起作用。有人可以帮我弄清楚如何解决此类问题吗?

注意:两个表的列都是 varchar(30)。

附加说明:当我如下更改语句时,它也会在 itcode 中打印值。

select sum(Qty) as total,itcode from mytable2 where itemcode=itcode

所以 itcode 的值为 'p2343' 但上面的存储过程不起作用。

最佳答案

这里的问题是程序正在引用全局变量 qty 以支持 mytable2 上的 Qty 列。尝试改变这个:

declare qty int;

对此

declare v_qty int;

关于Mysql 存储过程问题与 varchar 变量在 where 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23604016/

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