mysql while循环返回null

时间:2016-07-26 12:30:26

标签: mysql while-loop do-while

我有一个以人员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

1 个答案:

答案 0 :(得分:0)

您已将result声明为字符串。然后你使用加法。难怪你的代码没有达到预期的效果。

也许concat()就是你想要的:

    set result = concat_ws(',', result, (select managerid from table where personid = l_loop);