在IN()运算符中使用Mysql存储函数的返回值

时间:2018-06-19 08:26:47

标签: mysql stored-functions

我创建了一个Mysql存储函数,通过父ID获取所有子ID,它工作正常,该函数的返回类型为public class NodeSorter : System.Collections.IComparer ,并以逗号分隔的字符串返回子id作为字符串({ {1}})。

当我将它们放入varchar运算符时,它会带来与第一项(2 ,3 ,4 ,5 ,7 ,8 ,9)相关的记录。

以下是查询:

IN()

注意:我输入的2参数是父部门的ID。

提前致谢。

1 个答案:

答案 0 :(得分:2)

IN不接受逗号分隔值字符串,而是接受值列表。返回一行的原因是发生了从字符串到整数的隐式类型转换,因为id列可能具有INTEGER数据类型。

更改您的返回值或使用:

SELECT * FROM department WHERE FIND_IN_SET(id, REPLACE(getChildDepartment(1), ' ', ''));