更改MySQL中的数字格式(欧洲格式)

更改MySQL中的数字格式(欧洲格式),mysql,formatting,Mysql,Formatting,我需要将字段中的所有数字(键入longtext)从xxxxxx,yy更改为xxx.xxx,yy 是“x”整数和“y”十进制数 示例: 6000,00至6000,00 100000,00至100000,00 我尝试了格式,但它更改了以下数字: xxxxxx,yy至xxx,xxx.yy 例如: 1200,00至1200.00 如何实现这一目标,有什么建议吗 更新 我必须使用当前的数据类型,我不能更改它,这不是我的决定。我已经知道这不是处理事情的正确方法 我需要的是与此更新等效的东西: UPDATE

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

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

示例:

6000,00至6000,00

100000,00至100000,00

我尝试了
格式
,但它更改了以下数字:

xxxxxx,yy至xxx,xxx.yy

例如:

1200,00至1200.00

如何实现这一目标,有什么建议吗

更新

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

我需要的是与此更新等效的东西:

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

但是,这只适用于MySQL 5.5(因为第三个参数),我只能在使用MySQL 5.1的机器上执行这项操作,因为那里有一个数据库来存储和获取数据。不是为了让它看起来漂亮。在别的地方处理

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

更新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', '.')

首先,为什么要将数字存储为文本?在这种情况下,您应该使用类型。应在应用程序中处理特定于区域的格式设置。谢谢!,它就像一个符咒。幸运的是,我不需要小数点后的精度(也就是说,所有数字都有,00)