如何使用 select 在 Mysql 存储过程中获取单行

How to get a single row in Mysql stored procedure with select

这个问题我找了好久都没有找到答案。它可能非常简单,也可能是一个错误,所以任何帮助指出我做错了什么,提前表示感谢。

我有一个 table,其中 id 是唯一的:

Table school
---------------------------
id  name     class   fitness
---------------------------
1    Joe      4      healthy
2    Alice    7       good
3    Bob      10     excellent

存储过程为:

CREATE PROCEDURE checkid(IN ID INT)
BEGIN
    SELECT * FROM school WHERE id = ID;
END

使用以下命令执行上述过程:

CALL checkid(2)

return 整个 table。如果我将 SELECT 语句更改为:

CREATE PROCEDURE checkid(IN ID INT)
BEGIN
     SELECT * FROM school WHERE id = ID LIMIT 1;
END

我将 table 的第一行作为 return 值,这是错误的。


id  name     class   fitness
---------------------------
1    Joe      4      healthy

我该如何解决这个问题?

我认为您的数据库模式或过程名称有问题,或者您的查询或存储过程未正确保存。

尝试通过在 workbench 中设置默认架构然后在 运行 中创建您的过程。 但我确实认为这根本不可能。

感谢大家的帮助。在尝试了许多不同的事情并通过网络进一步搜索之后。我发现这个 link 有助于解决问题。

当我将输入参数名称更改为其他名称时,它起作用了。