2016-07-26 134 views
2

我有一個person id表作爲包含其管理員id的主鍵。我想設置一個while循環,它將顯示該人員的所有經理id,一直到列表頂部。我構建了一個while循環,但它返回null。我究竟做錯了什麼?mysql 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

您已聲明result作爲字符串。然後你使用加法。難怪你的代碼沒有達到你期望的水平。

也許concat()是你想要什麼:

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

我會繼續前進,現在捂臉超硬。非常感謝! –