在MySQL中,整数(呈现为字符串)消耗了多少个字符?

时间:2011-08-17 15:47:47

标签: mysql

我被告知mysql中一个整数的最大值约为40亿,但这似乎使用了10个字符。但是,当我指定整数的字符数时,我使用11个字符。额外角色会发生什么?

4 个答案:

答案 0 :(得分:2)

这是11个字符。额外数字是-的负数。不要相信我,你可以算here

修改

我在午餐时间之前写了这个答案,而且我一直困扰我,因为在most significant bit中我没有包含任何内容,因为它在这种情况下非常相关。所以,我包括Wikipedia's treatment,因为我不想重新开车。

答案 1 :(得分:2)

整数保存为32位数。这意味着,它可以存储2^32 = 4,294,967,296个不同的值。现在,如果您选择使用烧结整数(默认情况下这样做),您将能够在该32位的[-2147483648, 2147483647]区间内表示数字。

如果您现在将最低可能的数字转换为字符串,您会注意到它有11个字符,包括减号。

通常,您应该尝试将数字用作数字而不是字符串。尽管两者看起来相似,但它们是仅包含数字字符的字符串与实际数字值之间的主要区别。

答案 2 :(得分:0)

实际上是11个字符。如果你超过最大限制而不仅仅是整数,但是对于任何字段,这些值都会被截断。

答案 3 :(得分:0)

它取决于您在mysql和事务性/非事务性表中使用的模式。默认情况下,mysql会将数字截断为最接近的数字。如果严格模式,则查询将失败。查看更多信息http://dev.mysql.com/doc/refman/5.0/en/server-sql-mode.html