我都有两mysql
列int unsigned zerofill
。第一5
长,第二11
长。第一个值采用任何5
数字都没有问题。第二,无论如何将任何11
数字转换为04294967295
. 关于我能做些什么来解决这个难题的任何线索?
问问题
113 次
3 回答
2
您的数字大于整数字段可以处理的 - 2 32 - 1。
将列更改为无符号 BIGINT,您将可以达到 18,446,744,073,709,551,615。
于 2013-06-02T14:17:48.553 回答
0
您给整数字段的长度仅用于显示。如果您传递长度 11,则该列上的选择突击队将显示 11 位数字(这是您获得的数字的长度)。字段的实际大小取决于您为列选择的类型 ( int
)。int
-fields 能够存储 2 32 个不同的值。对于第一个值为 0 的无符号字段,这会产生最大值 2 32 - 1,这与输出中的数字相匹配。由于您输入的任何 11 位数字都将大于此数字,因此保存的值将是 2 32 - 1。
您可以通过使用 -type 来克服这个限制BIGINT
,它允许您存储最多 2 64的任何数字。
于 2013-06-02T14:22:37.153 回答
0
UNSIGNED INT 的范围是 0 到 4294967295。因此,任何高于 4294967295 的值都会插入该最大值,因为这是 unsigned INT 可能的最大值。
于 2013-06-02T14:23:40.120 回答