我在下面共享的代码从我所拥有的数字的前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 ;
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