在存储函数中返回数组

时间:2011-08-18 12:32:05

标签: mysql stored-functions

我试图在MySQL(5.x)的WHERE语句中使用存储函数的结果,但它失败了,因为在函数中我从表中选择值到INT变量然后返回它/它,如果SELECT返回多于1行,这显然不起作用。我已经尝试返回一个TABLE(因为我理解TABLE表示MySQL中的数组),但这也不起作用。

有什么方法可以做我喜欢的事情:

SELECT ID FROM myTable WHERE ID IN my_function(params);

谢谢。

1 个答案:

答案 0 :(得分:1)

这不能做......

首先,您不能使用存储的函数返回多个结果 - 您需要使用存储过程。

MySQL docs州:

  

返回结果集的语句可以在存储过程中使用,但不能在存储的函数中使用。

其次,您无法在查询中使用存储过程 - 请参阅此SO question

您是否考虑在查询结束时使用“HAVING ...”?