1

我需要将字段中的所有数字(输入 longtext)从xxxxxx,yy更改为xxx.xxx,yy

是“x”整数和“y”十进制数。

例子:

6000,00 至 6.000,00

100000,00 至 100.000,00

我试过format了,但它改变了一个数字:

xxxxxx,yy 到 xxx,xxx.yy

例子:

1200,00 至 1,200.00

任何建议如何实现这一目标?

更新

我必须使用当前的数据类型,我不能更改它,这不是我的决定。我已经知道这不是处理事情的正确方法。

我需要的是与此更新等效的内容:

UPDATE <table> SET <field> = FORMAT(<field>, 2, 'de_DE');

但是这只适用于 MySQL 5.5(因为第三个参数),我只能在使用 MySQL 5.1 的机器上执行此操作

4

1 回答 1

3

有一个数据库来存储和获取数据。不是为了好看。在其他地方处理。

更新:没有看到您已将其存储在长文本列中。只要没有重要的理由(我敢打赌没有)保持这种状态,最好也是唯一的答案是,您应该更改该列的数据类型。

更新2:如果你坚持...

create table lt(lt longtext);
insert into lt values ('6000,00'), ('1234567,12');
select 
lt,
replace(replace(replace(format(convert(replace(lt, ',', '.'), decimal(10,2)), 2), ',', 'x'), '.', ','), 'x', '.')
from lt

更新3:如果一切x,00顺利,您可以节省转换并这样做:

replace(replace(replace(format(lt, 2), ',', 'x'), '.', ','), 'x', '.')
于 2012-11-06T17:18:17.577 回答