【问题标题】:adding a comma to the result after each iteration in while loop MySQL在while循环MySQL中的每次迭代后向结果添加一个逗号
【发布时间】:2020-09-15 19:40:40
【问题描述】:

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

    【讨论】:

      猜你喜欢
      • 2015-03-19
      • 2015-09-20
      • 1970-01-01
      • 2013-10-11
      • 1970-01-01
      • 2018-03-15
      • 1970-01-01
      • 2015-10-20
      • 1970-01-01
      相关资源
      最近更新 更多