我创建了一个Mysql存储函数,通过父ID获取所有子ID,它工作正常,该函数的返回类型为public class NodeSorter : System.Collections.IComparer
,并以逗号分隔的字符串返回子id作为字符串({ {1}})。
当我将它们放入varchar
运算符时,它会带来与第一项(2 ,3 ,4 ,5 ,7 ,8 ,9
)相关的记录。
以下是查询:
IN()
注意:我输入的2
参数是父部门的ID。
提前致谢。
答案 0 :(得分:2)
IN
不接受逗号分隔值字符串,而是接受值列表。返回一行的原因是发生了从字符串到整数的隐式类型转换,因为id
列可能具有INTEGER
数据类型。
更改您的返回值或使用:
SELECT * FROM department WHERE FIND_IN_SET(id, REPLACE(getChildDepartment(1), ' ', ''));