2012-11-06 94 views
0

我需要改變所有的數字的字段(類型LONGTEXT),從xxxxxx,yyxxx.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

我必須用當前的數據類型,我不能改變它,那不是我的決定。我已經知道這不是處理事情的正確方法。

我需要的是一些等同於本次更新:

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

然而,這只是工作(因爲第三個參數)與MySQL 5.5,我只能在使用MySQL 5.1

機器做到這一點
+0

你爲什麼要存儲號碼作爲第一個文本?在這種情況下,您應該使用['DECIMAL'](http://dev.mysql.com/doc/refman/5.0/en/fixed-point-types.html)類型。應該在應用程序中處理區域特定的格式。 – Sammitch

回答

2

數據庫存儲並獲取數據。不要讓它看起來漂亮。處理別的地方。

更新:沒有看到您已將其存儲在longtext列中。只要沒有重要的理由(我敢打賭沒有)保持這種方式,最好的和唯一的答案是,你應該改變該列的數據類型。

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

我已經更新了該問題以回答此問題。 – rfc1484

+0

@ rfc1484更新了我的答案。 – fancyPants

+0

@ rfc1484,它現在的作品... – fancyPants