我试图在MySQL(5.x)的WHERE语句中使用存储函数的结果,但它失败了,因为在函数中我从表中选择值到INT变量然后返回它/它,如果SELECT返回多于1行,这显然不起作用。我已经尝试返回一个TABLE(因为我理解TABLE表示MySQL中的数组),但这也不起作用。
有什么方法可以做我喜欢的事情:
SELECT ID FROM myTable WHERE ID IN my_function(params);
谢谢。
答案 0 :(得分:1)
这不能做......
首先,您不能使用存储的函数返回多个结果 - 您需要使用存储过程。
返回结果集的语句可以在存储过程中使用,但不能在存储的函数中使用。
其次,您无法在查询中使用存储过程 - 请参阅此SO question。
您是否考虑在查询结束时使用“HAVING ...”?