(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,