我一直认为INT(5)表示一个最大长度为5位的数字。我试着在里面输入一个巨大的数字,不知何故,它被减少到2147483647
这显然不是5位数。那么INT(5)的限制是什么呢?
发布于 2012-01-17 17:42:10
来自MySQL Docs, Numeric Type Attributes
MySQL支持一个扩展,用于在类型的base关键字后面的圆括号中选择性地指定整数数据类型的显示宽度。例如, INT (4)指定一个显示宽度为四位数的INT。应用程序可以使用此可选的显示宽度来显示整数值,该值的宽度小于为列指定的宽度,方法是使用空格.进行左填充(即,此宽度存在于随结果集返回的元数据中。是否使用它取决于应用程序。)
发布于 2012-01-17 17:41:15
INT始终为四字节宽。5是“显示宽度”。
发布于 2012-01-17 17:41:15
在MySQL中,INT(5)并不意味着值仅限于5个字符值。这只意味着MySQL在返回这些值时会尝试用空格/零来填充它们。
任何带符号的INT,包括INT( 10 )、INT(5)或任何其他INT(n)的数值范围是:-2,147,483,648 ... 2,147,483,647,最多10位。
https://stackoverflow.com/questions/8892341
复制相似问题