(MySQL)CONCAT()函数在重复循环中是如何工作的?

(MySQL)CONCAT()函数在重复循环中是如何工作的?,mysql,function,loops,repeat,concat,Mysql,Function,Loops,Repeat,Concat,我正在学习使用网站上的REPEAT关键字进行基本循环。通过传递REPEAT关键字,变量result通过CONCAT()函数显示每个数字1到9 我不明白的是变量result如何以及为什么引用代码中的每个数字 本教程说,使用CONCAT()函数将计数器值添加到结果变量(听起来像是覆盖): 使用CONCAT()函数将计数器值附加到结果变量 我在谷歌上搜索,但找不到关于覆盖的信息 这段代码是如何工作的?提示:第一站应该是不是某个三流的“w3”类型的站点。concat的工作方式非常简单,在循环中的行为也没

我正在学习使用网站上的
REPEAT
关键字进行基本循环。通过传递
REPEAT
关键字,变量
result
通过
CONCAT()函数显示每个数字1到9

我不明白的是变量
result
如何以及为什么引用代码中的每个数字

本教程说,使用
CONCAT()
函数将
计数器
值添加到
结果
变量(听起来像是覆盖):

使用CONCAT()函数将
计数器
值附加到
结果
变量

我在谷歌上搜索,但找不到关于覆盖的信息


这段代码是如何工作的?

提示:第一站应该是不是某个三流的“w3”类型的站点。concat的工作方式非常简单,在循环中的行为也没有什么不同。想象一下,如果你没有一个循环,而是做了
CONCAT(result,1',,”)
,然后
CONCAT(result,2',,”)
等等。@tadman所以我理解的是
count
值实际上会存储到每个循环中的
result
变量中,就像这样:
loop 1st:(空字符串)
/
第二循环:1,
/
第三循环:1,2,
/
第四循环:1,2,3,
/
第五循环:1,2,3,4
<代码>最终循环:1到9
我的观察结果正确吗?是的,但结尾总是有一个逗号,因为一个总是加在最后,否则就是这个意思。@tadman明白了。谢谢你给我小费。
DELIMITER $$

CREATE PROCEDURE RepeatDemo()
BEGIN
    DECLARE counter INT DEFAULT 1;
    DECLARE result VARCHAR(100) DEFAULT 'test string';

    REPEAT
        SET result = CONCAT(result, counter, ',');
        SET counter = counter + 1;
    UNTIL counter >= 10
    END REPEAT;

    -- display result
    SELECT result;
END$$

DELIMITER ;
CALL RepeatDemo(); // = 1,2,3,4,5,6,7,8,9,