MYSQL中可以存储整数或双值的字段类型我的意思是在同一列中你可以存储整数||双打?

时间:2013-01-30 04:17:48

标签: mysql

MYSQL中可以存储整数或双值的字段类型是什么 我的意思是在同一列中你可以存储整数||双打? 这是什么类型或我该怎么做?

任何努力都将得到赞赏。

5 个答案:

答案 0 :(得分:1)

没有符合您要求的原生MySQL数据类型。

通常,DECIMAL数据类型适合账单,尽管这是一个精确的十进制值,而不是浮点型近似值。由于它具有固定的小数点,因此可以存储的值范围比DOUBLE类型小几个数量级。

一个选项是使用VARCHAR列,并存储值的字符表示。

另一个(笨拙的)选项是使用BIT(64)列。

但似乎无论使用哪种方法,您都需要某种类型的指标来确定存储哪种类型的值。这两种方法都存在一些缺点。一个很大的缺点是,这些将允许存储“无效”值。

我会考虑的方法(如果我有这个要求)将使用两列,其中一列INTEGER,另一列DOUBLE,并指定优先级,并允许NULL值INTEGER列表示该值存储在DOUBLE列中。

答案 1 :(得分:0)

INT - 可以是有符号或无符号的正常大小的整数。如果已签名,则允许范围为-2147483648至2147483647.如果为无符号,则允许范围为0到4294967295.您可以指定最多11位数的宽度。

DOUBLE(M,D) - 无法无符号的双精度浮点数。您可以定义显示长度(M)和小数位数(D)。这不是必需的,默认为16,4,其中4是小数位数。对于DOUBLE,十进制精度可以达到53位。 REAL是DOUBLE的同义词。

答案 2 :(得分:0)

您可以使用双数据类型,并使用您的语言(php,ja)将该值显示为整数。

答案 3 :(得分:0)

我认为mysql中没有这样的数据类型。可能您可能需要varchar,并在服务器端代码(php,java ...)中强制转换为正确的数据类型,但这可能会导致性能开销。我不知道你怎么会有这样奇怪的数据类型要求。如果必须以这种方式存储数据,请考虑添加额外的列以标记数据类型。

答案 4 :(得分:0)

我想您可能会错过了解计算机如何存储数字:数字是整数还是浮点数。处理器算术逻辑单元(ALU)中的每个都有不同的电路。你不能拥有两者兼有的数字。