MySql从存储过程/函数返回多行

时间:2009-06-30 06:26:23

标签: mysql stored-procedures

我需要创建一个返回一组行的存储过程或函数。我注意到在存储过程中我可以SELECT * FROM table成功。如果我在循环中获取行并且每次循环执行SELECT something, something_other FROM table一次,我只得到一个结果。

我需要做的是循环,做一些计算并返回一个rowset。最好的方法是什么?临时表?存储功能?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:3)

听起来你在存储过程的主体内使用游标来完成循环?

我的第一个建议是:尝试在单个查询中进行计算而不使用游标。究竟是什么计算?

如果确实需要使用游标,则将每个循环的结果插入临时表,然后在循环完成后从该表中选择SELECT *。

答案 1 :(得分:0)

您可以返回多个结果集,但仅当客户端库支持它并且客户端期望它时。有些则没有,因此使用它们会导致无序错误。

您当然可以构建一个临时表,从中进行选择并将其放入过程中,这样会很安全。另一种选择是使用准备好的SQL语句构建UNION选择,该语句返回您需要的所有行并执行该操作。那有点乱。

相关问题