【问题标题】:INT(1) and INT(2) in Mysql Range and Limit to StoreData?Mysql范围内的INT(1)和INT(2)以及StoreData的限制?
【发布时间】:2013-02-06 11:01:29
【问题描述】:

在 Mysql 中:

INT(1) = 2147483647 并存储 4 个字节,

那么INT(2) = ? 和 Store ? 字节呢...

我在 INT(1) 中使用超过 2147483647 它不起作用! 我也在 INT(2) 中使用了相同的值它不起作用??为什么?

解决方案?

【问题讨论】:

标签: php mysql


【解决方案1】:

可选的显示宽度说明符仅在使用 zerofill 时适用,与整数数据类型的内部大小(以字节为单位)无关。它总是 4 个字节。

应用程序可以使用这个可选的显示宽度来显示宽度小于为列指定的宽度的整数值,方法是用空格向左填充它们。 (也就是说,这个宽度存在于结果集返回的元数据中。是否使用它取决于应用程序。)

这是[链接] (http://dev.mysql.com/doc/refman/5.5/en/numeric-type-attributes.html)

更多示例

如果存在表名则删除表;

创建表表名 ( columnname int(4) unsigned zerofill not null default 0 );

插入表名(列名)值(123),(456),(1234);

从表名中选择 *;

输出

0123

0456

1234

【讨论】:

    【解决方案2】:

    括号内的数字表示字段返回的位数。您可以在 INT(1) 中插入任何数字,但只能得到 0 到 9 之间的数字。

    【讨论】:

    • 举例说明
    【解决方案3】:

    MySQL 中的 INT 始终是 4 字节数字。

    INT类型的语法为INT(M),其中M表示最大显示宽度;但并非所有 MySQL 客户端都支持此值。

    【讨论】:

    • 但是 INT(2) 超过 2147483647 这个值,它不起作用,为什么?
    • INT:有符号范围是 -2147483648 到 2147483647。无符号范围是 0 到 4294967295。
    • 看看 Alepac 的回答,你需要另一种数据类型。
    【解决方案4】:

    您应该使用 BIGINT 来获取 8 个字节(请参阅 Integer Types)。括号中的数字仅表示最大显示宽度(见Numeric Type Attributes

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-14
      • 2021-10-12
      • 2013-10-20
      • 1970-01-01
      • 2018-03-14
      • 1970-01-01
      相关资源
      最近更新 更多