首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将MySQL表varchar字段更改为十进制字段

问将MySQL表varchar字段更改为十进制字段
EN

Stack Overflow用户
提问于 2015-10-10 16:09:25
回答 1查看 1.6K关注 0票数 2

我有一个MySQL表,它有几个大号,如

代码语言:javascript
复制
id  text_1  val_1   text_2  text_3  val_2
1   'bla'   1,23    'blub'  5,67    12,34

不幸的是,所有字段都被定义为varchar。现在,我尝试修改表,使一些字段为十进制值。

我会试着

代码语言:javascript
复制
UPDATE table SET
val_1 = CAST(val_1 AS DECIMAL(5,2)),
val_2 = CAST(val_2 AS DECIMAL(5,2));

这应该给我两个小数位数的十进制值,最大值为999,99,对吗?

这是改变表格结构的正确方法吗?这应该是一次转换,因为值应该是da十进制类型,字符串应该是varchar类型。

我必须先把“逗号”转换成“点”吗?

更新

不幸的是,我还有‘<0,01’这样的值。但是这个字段应该是一个十进制字段。我能用它做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-10 16:13:06

是的,你必须把这个,转换成一个。第一。

代码语言:javascript
复制
UPDATE sometable SET val_1=REPLACE(val_1,',','.');

在那之后,桌子必须改变:

代码语言:javascript
复制
ALTER TABLE sometable MODIFY COLUMN val_1 DECIMAL(5,2);

不需要您的update语句。

如果您有较小的值,它们将被四舍五入(在您的情况下)。若要防止舍入,请使用另一个DECIMAL设置(有更多位数)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33056035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档