int只需2147483647,我想要9999999999

时间:2015-04-13 08:55:05

标签: mysql sql

在MYSQL数据库中,我使用了phone.no列,它的数据类型为int。我把它从int(13)带到int(30),但它的最大值是2147483647.

我希望最大值为9999999999。

4 个答案:

答案 0 :(得分:5)

建议不要对电话号码使用INT(或数字数据类型)。 int的最大值为 2147483647 ,因此您不能使用多于其中的值。

最好使用varchar来存储电话号码而不是int或bigint。您可以使用varchar(15)并确实在该字段上创建索引。另请查看维基百科上的Telephone Numbers

电话号码使用varchar代替Int

原因可以是: -

  1. 您不打算在电话号码字段上执行任何arithmetic operation(+,-,*,/),因此在我看来,使用varchar是一个不错的选择。
  2. 假设您想以国际格式存储电话号码,如+4412345667或类似(1234)23456,那么varchar将是更好的选择。
  3. 如果你想比较两个电话号码,比如00789768和0789768,那么使用int数据类型两者都是相同的,但是对于varchar,它们被视为两个不同的电话号码。

答案 1 :(得分:1)

INT的最大值为2147483647.如果您想要更大的尺寸,则需要使用BIGINT,但对于电话号码,VARCHAR是更好的选择。

答案 2 :(得分:0)

在Mysql中你的改变:" int(13)到int(30)" 仅应用于选择时的表示,而不影响应用于整数时列的大小。 (仅适用于varchars)

您在前面的答案中所述的内容使用了big int类型。

在任何情况下讨论电话号码时都不是一个好的选择。当比较时,008877和00008877是相同的。因此,更好的设计选择是使用具有正确大小的varchar。

答案 3 :(得分:0)

我们应该始终使用 Varchar()来存储电话号码,而不是整数或bigint。