gpt4 book ai didi

Mysql游标无法获取数据

转载 作者:行者123 更新时间:2023-11-29 23:49:08 24 4
gpt4 key购买 nike

我正在创建程序来获取乘客姓名和 PNR 号码,使用游标获取数据,这里的代码是:

mysql> create procedure GetName(out PNR_No varchar(20), out Name varchar(20))
-> begin
-> declare PNR varchar(20);
-> declare Names varchar(20);
-> declare finished int default 0;
-> declare c1 cursor for select T.PNRNo, P.Name
-> from Passenger P, Ticket T
-> where P.PPNO=T.PPNO;
-> declare continue handler for not found set finished=1;
-> open c1;
-> get_Names: loop
-> fetch c1 into PNR, Names;
-> if finished=1 then
-> leave get_Names;
-> end if;
-> set PNR_No=concat(PNR,";",PNR_No);
-> set Name=concat(Names,";",Name);
-> end loop get_Names;
-> close c1;
-> end/

但是当我调用该过程时:

mysql> call GetName(@PNR_No,@Name);
-> /
Query OK, 0 rows affected (0.07 sec)

mysql> select @PNR_No,@Name;
-> /
+---------+-------+
| @PNR_No | @Name |
+---------+-------+
| NULL | NULL |

但是当我执行查询时:

mysql> select T.PNRNo, P.Name
-> from Passenger P, Ticket T
-> where P.PPNO=T.PPNO;
-> /
+----------+---------+
| PNRNo | Name |
+----------+---------+
| PNRO0006 | NAME001 |
| PNRO0003 | NAME002 |
| PNRO0007 | NAME002 |
| PNRO0002 | NAME003 |
| PNRO0009 | NAME003 |
| PNRO0004 | NAME004 |
| PNRO0008 | NAME004 |
| PNRO0001 | NAME005 |
| PNRO0005 | NAME005 |
+----------+---------+
9 rows in set (0.00 sec)

我没有明白我错在哪里!

最佳答案

尝试预设 PNR_No 和姓名变量 IE

SET PNR_No = '' ;
SET Name = '' ;

这是因为如果 concat 中的任何项目为 NULL,您将返回 NULL。

关于Mysql游标无法获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25742782/

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