我有一个以人员ID作为主键的表,其中包含经理的ID。我想设置一个while循环,它将显示该人的所有经理ID,一直到列表的顶部。我构建了一个while循环,但它返回null。我做错了什么?
CREATE FUNCTION `whilefunction`() RETURNS varchar(255)
BEGIN
declare l_loop varchar(25) default '123456';
declare result varchar(255) default '';
while l_loop is not null do
set result = result + (select managerid from table where personid = l_loop);
set l_loop = (select managerid from table where personid = l_loop);
end while;
RETURN result;
END
答案 0 :(得分:0)
您已将result
声明为字符串。然后你使用加法。难怪你的代码没有达到预期的效果。
也许concat()
就是你想要的:
set result = concat_ws(',', result, (select managerid from table where personid = l_loop);