gpt4 book ai didi

MySQL 存储过程仅在第一次运行时返回结果

转载 作者:行者123 更新时间:2023-11-29 15:36:21 26 4
gpt4 key购买 nike

Picture of Problem

我的存储过程将在第一次调用时成功运行(无论是通过 API 还是 MySQL Workbench),但在第一次调用后的第二次或第 n 次,将返回 0 行。

什么原因导致这种行为?

json_表?

程序如下:

CREATE DEFINER=`root`@`localhost` PROCEDURE `graphs_characters_rank_bar`()
BEGIN
select
x.*
from
players p
,json_table(p.character_ranks, "$[*]" columns(
rowid for ordinality
,`character` varchar(255) path "$.character" default '0' on error default '0' on empty
,`rank` int(11) path "$.rank" default '0' on error default '0' on empty
)
) x
where
p.id = 1
order by
x.`rank` desc;
END

玩家表如下所示

| id | 名称 | character_ranks |

| 1 | 我的名字 | [{"rank": 930, "character": 12}] |

最佳答案

使用 const 连接类型(使用 EXPLAIN)时似乎存在错误。

尝试更改 WHERE 语句中的条件:

来自

... p.id = 1 ...

... p.id > 0 ...

另一个选择是使用 13.5 Prepared SQL Statement Syntax在存储过程中执行查询。

报告的错误:Bug #97097 Stored Procedure, JSON_TABLE and "const" join type .

关于MySQL 存储过程仅在第一次运行时返回结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58210981/

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