为何10位手机号无法存入长度为10的整数类型?
10位手机号无法存入整数类型的原因解析
- 你误解了整数类型“长度”的含义:比如
INT(10)里的10是显示宽度,不是存储的最大位数。它只影响数据显示时的补零格式(配合ZEROFILL使用),和实际能存储的数值范围无关。 - 标准
INT类型的存储范围是-2147483648到2147483647,也就是最大只能存10位的2147483647。如果你的10位手机号大于这个值(比如9999999999),就会超出整数范围,导致无法存入;而9位手机号最大是999999999,远小于2147483647,所以能正常存储。 - 补充:手机号本质是字符串标识,不是用于计算的数值,用
VARCHAR存储才是更合理的选择——既不会有数值溢出问题,也能兼容可能出现的特殊格式(比如带加号、空格分隔符等)。
内容的提问来源于stack exchange,提问作者Cinthya M Shaji
相关产品推荐
相关产品推荐

