【问题标题】:MySQL Column Type for Variable Length Decimal Numbers可变长度十进制数的 MySQL 列类型
【发布时间】:2015-02-20 05:43:36
【问题描述】:

我正在尝试找到用于在小数点前后变化长度的数值的最佳列类型。

DECIMAL 类型似乎只允许在小数点后具有固定长度的固定长度数字。我需要一些可以保留精确数字的东西,例如:

  • 1.50
  • 222.05
  • 124.2584879775435298
  • 5344.87987797797979077

除了 varchar 之外,我找不到任何能明确适应这一点的东西。我错过了什么吗?

【问题讨论】:

  • 看这个。这可能会帮助你stackoverflow.com/questions/425389/…
  • 谢谢。查看已接受答案中的图表,然后将其与 MySQL 中可用的图表进行比较,看来 varchar 仍然是我唯一的选择。 ://

标签: mysql decimal varchar


【解决方案1】:

您需要这些数字来进行未来的数字运算吗?如果没有,那么您应该能够将数据存储为可变长度字符串,以便 VARCHAR 可以工作。

这个网站可能会回答你的问题:

http://dev.mysql.com/doc/refman/5.6/en/numeric-types.html

【讨论】:

  • 每次更新行时我都会对数字进行数学运算。对 varchar 数字进行基本数学运算是否有问题?
  • 感谢您的链接。在问这个问题之前,我实际上阅读了整个页面以及其他一些页面。
  • 如我所见,如果您将它们设置为数值,例如 DECIMAL,DB 将知道您在加减等时想要的结果,将属于该类型,无需转换:@987654322 @
  • 设置 VARCHAR 的问题,我知道 mySQL 会自动为您从字符串转换为数值,它可能不是您想要的确切格式...假设您想要一个 DECIMAL算术运算产生的特定长度和小数点后位数的格式,它可能会自动将此结果转换为 INT 类型。我发现这些网站有关使用 CONVERT() 和 CAST() 方法处理数据。 :dba.fyicenter.com/faq/sql_server/…
  • geeksengine.com/database/single-row-functions/… 我认为本质上它们的意思是,如果您希望程序员仅通过查询将数据用于检索过程,则不需要任何转换,从而以您想要的方式显示上面有不同的长度,那么 VARCHAR 就可以了。
猜你喜欢
  • 2013-06-26
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多