在while循环MySQL中每次迭代后在结果中添加逗号

问题描述 投票:0回答:1

我在下面共享的代码从我所拥有的数字的前3位数字中减去10,然后将其存储到新变量中,并继续执行相同的操作直到结束。我想知道是否可以在每次计算后添加“,”,让它在第一次迭代中变为177,然后应该在其后添加一个逗号以将它们彼此分开,现在代码输出看起来像'177222290',但我想使其看起来像'177,222,290'。如果有人可以帮助我,请。我还尝试了分隔符',',在其中将concat设置为@OUT,但是它不起作用。

DELIMITER $$
CREATE PROCEDURE proccc(
)
BEGIN
    set @x = '187232300';
    set @OUT = '';
    set @y = 10;
    set @counter = 1 ;
    L:WHILE @counter <= (@x/3) DO
    if @x is null or @counter > CHAR_LENGTH(@x) then leave L; end if;
        SET @OUT = CONCAT(@OUT,substring(@x,@counter,3 ) - @y  );
        set @counter= @counter+3;
    END WHILE;
   select @OUT;
END$$
DELIMITER ;
mysql database stored-procedures add comma
1个回答
0
投票
CREATE PROCEDURE add_commas( IN num BIGINT )
BEGIN
SET @buffer := '';
cycle: 
WHILE num > 0 DO
    SET @buffer := CONCAT(num MOD 1000, ',', @buffer);
    SET num := num DIV 1000;
END WHILE;
SELECT TRIM(TRAILING ',' FROM @buffer);
END 

fiddle

© www.soinside.com 2019 - 2024. All rights reserved.