mysql insert / update转换一个数字

时间:2013-06-02 14:14:34

标签: mysql

我有两个mysqlint unsigned zerofill。第一个5长度,第二个11长度。第一个值取任何5个数字都没有问题。第二种,无论将任何11位数转换为04294967295。关于我可以做些什么来解决这个难题的任何线索?

3 个答案:

答案 0 :(得分:2)

您的数字大于整数字段可以处理的数字 - 2 32 - 1。

将列更改为无符号BIGINT,最高可达18,446,744,073,709,551,615。

答案 1 :(得分:0)

您给整数字段的长度仅用于显示。如果传递长度为11,则该列上的选择命令将显示11个数字(这是您获得的数字的长度)。字段的实际大小由您为列选择的类型(int)确定。 int - 字段能够存储2个 32 个不同的值。对于具有0作为其第一个值的无符号字段,这将导致最大值2 32 - 1,这与输出中的数字匹配。由于您输入的任何11位数字都将大于此数字,因此保存的值将为2 32 - 1.

您可以使用BIGINT - 类型来克服此限制,该类型允许您存储最多2个 64 的任何数字。

答案 2 :(得分:0)

UNSIGNED INT的范围是0到4294967295. so任何高于4294967295的值,它将插入该最大值,因为这是无符号INT可能的最大值。