mysql - mysql中10位手机没有数据有什么问题?

标签 mysql phpmyadmin

我做了一个表来存储我网站用户的联系记录。它还包含一个 10 位数的手机号码。

表结构是这样的:

CREATE TABLE contact_user
(
id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
contact INT(10)
)

现在的问题是,如果我使用 phpmyadmin 在联系人字段中插入一个 10 手机号码(例如 9595891256),它会插入一些随机值并显示警告“数据超出列范围”

但是,如果我插入一个简单的 10 位数字编号(例如 4561327894),那么它工作正常并且不会显示任何警告。

请告诉我在此列中插入手机号码有什么问题?

我在 ubuntu 11.04 上使用 mysql 5.1,还使用 ​​phpmyadmin。

最佳答案

INT(10)不是指10位数字,而是指显示宽度为10位的整数。无论您输入 INT(2) 还是 INT(10),MySQL 仍然只存储一个(在本例中为无符号)INT,其最大值为 4294967295。

您可以使用 BIGINT 而不是 INT 将其存储为数字。但是,我不推荐这样做,因为它不允许国际号码。如果您确定您的应用程序将只使用美国数字,那么使用 BIGINT 将比 VARCHAR(10) 每行节省 3 个字节——如果您担心这种事情的话。

因为它是一个电话号码(因此您不会对其进行数值计算),请尝试使用 VARCHAR(20)。这使您能够在需要时正确存储国际电话号码。

关于mysql - mysql中10位手机没有数据有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25075437/

相关文章:

mysql - 想要更好地了解此查询的工作原理?

根据计数条件指定的 MySQL 更新

php - MySQL 存储过程和准备语句的性能比较

javascript - sequelize.js 中的自定义 json 响应

mysql - Vagrant,如何在主机上访问/同步 phpmyadmin

phpmyadmin - 无法在xampp中启动mysql

php - 通过PHP上传导入.sql文件

php - 连接太多。#1040 无法连接到 mysql 服务器

mysql - 将 ODS 文件导入 MySQL

php - "Connection for controluser as defined in your configuration failed"在 XAMPP 中使用 phpMyAdmin