2

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

有什么方法可以让我做类似的事情:

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

谢谢你。

4

1 回答 1

1

这是做不到的……

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

MySQL 文档状态:

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

其次,您不能在查询中使用存储过程 - 请参阅这个SO question

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

于 2011-08-18T12:53:13.437 回答