【问题标题】:Error while calling mysql stored procedure that return more than one row调用返回多行的mysql存储过程时出错
【发布时间】:2015-10-20 07:01:57
【问题描述】:

我想编写一个返回多行的存储过程。

我的存储过程是(这只是一个例子)

DELIMITER $$

CREATE PROCEDURE get_users(out get_users varchar(30))
BEGIN
    select name into get_users from tbl_join;

END

现在我想调用存储过程并在 phpmyadmin 中显示结果。

call get_users(@out);
select @out;

然后发生错误。

#1172 - 结果包含不止一行

我的表tbl_join是:

id    name      date

1     Anil     2000-09-12
2     Rahul    2001-02-04
3     Lijin    1999-12-21

预期结果是:

Anil
Rahul
Lijin

我只是想要一个 存储过程 来获得上述结果。请帮帮我..

【问题讨论】:

标签: php mysql stored-procedures


【解决方案1】:

这样的查询

select name into get_users from tbl_join;

有点无意义。在关系数据库中,除非您指定它,否则没有顺序。理论上,每次执行此查询时,您都可以获得另一个随机行。像这样写

select name into get_users from tbl_join order by name limit 1;

例如,按字母顺序获取名字。

【讨论】:

  • 我想一次显示所有行。 by name limit 1 只给出一行。
  • 嗯,只有一个条目适合一个变量。如果您想显示整个表格,只需执行 SELECT * FROM table 并忘记整个存储过程。
猜你喜欢
  • 1970-01-01
  • 2020-04-29
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
  • 2015-03-16
  • 1970-01-01
  • 2018-08-13
  • 1970-01-01
相关资源
最近更新 更多