gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 06:42:35 25 4
gpt4 key购买 nike

我创建了一个Mysql存储函数来通过父id获取所有子id,它工作正常,该函数的返回类型是varchar它以逗号分隔的字符串形式返回子 ID,如 ( 2 ,3 ,4 ,5 ,7 ,8 ,9 )。

当我把它们放入IN()时运算符,它带来与第一项( 2 )相关的记录。

这是查询:

SELECT * FROM department where id in(getChildDepartment(1)) 

注意:1我输入的参数是上级部门的id。

提前致谢。

最佳答案

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

更改返回值或使用:

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

关于mysql - 在 IN() 运算符中使用 Mysql 存储函数的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50923832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com