mysql while循环返回null

标签 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

最佳答案

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

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

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

关于mysql while循环返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38589976/

相关文章:

mysql - 在 ODBC mod 中添加任何模块时,ejabberd 中出现错误

php - 毫无意义的 SQL 与 PHP 如果

php - 执行多个查询时 PHP 出现 MySQL 语法错误

javascript - 在 Bootstrap Modal 中将值传递给表单

C++ 文件输入流循环问题

java - 向我解释一下这个 while 循环(基本 java)?

php - 来自 SQL 数据库的文件路径不循环 BG 图像

java - 用户输入仅发生一次或在循环期间永不停止

java - switch 语句不会中断

java - 检查字符串的长度并在 Java 中使用 do-while