【发布时间】:2017-03-17 11:35:03
【问题描述】:
我一直在四处寻找,但找不到这个问题的答案。它可能非常简单,也可能是一个错误,所以任何帮助指出我做错了什么,提前感谢。
我有一个 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)
返回整个表格。如果我将 SELECT 语句更改为:
CREATE PROCEDURE checkid(IN ID INT)
BEGIN
SELECT * FROM school WHERE id = ID LIMIT 1;
END
我得到表的第一行作为这样的返回值,这是错误的。
id name class fitness
---------------------------
1 Joe 4 healthy
我该如何解决这个问题?
【问题讨论】:
-
我在rextester 上尝试过,您的代码按预期工作...
-
我用我的数据库试过了——你的代码很好。尝试从头开始再次创建您的过程。
-
谢谢大家,不幸的是它对我不起作用。也许,我应该在另一台电脑上试试,因为你说它对你有用。
-
我再次测试,但我总是得到第一行。当你使用 proc 时,你得到的是正确的行还是第一行?
标签: mysql select return row procedure