调用mysql存储过程返回多行时出错


Error while calling mysql stored procedure that return more than one row

我想写一个不止一行的存储过程

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

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 -结果包含多个行

My table tbl_join is:

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

预期结果:

Anil
Rahul
Lijin

简单地说,我想要一个存储过程来存储上述结果。

像这样的查询

select name into get_users from tbl_join;

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

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

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