我有一个MySQL数据库,我想在其他地方存储电话号码。
字段类型为INT(10)
当我尝试插入一个以0开头的数字时,如0504042858,它存储为504042858.这只发生在前导零的电话号码上。当数字以任何其他数字开头时,它会被正确存储。
我做错了什么?
答案 0 :(得分:5)
您应该将电话号码存储为varchar
。电话号码只是偶然的数字。
您可能还有兴趣查看以下Stack Overflow帖子:
答案 1 :(得分:2)
您可以使用属性值 UNSIGNED_ZEROFILL 指定长度 INT(11)。它将填充所有11位数字,如果任何数字长度小于11,它将在值之前自己添加零。 这可能会解决您的问题。
答案 2 :(得分:1)
它正在删除前导零,因为它们在数学上是相同的并且删除前导零是快速存储优化。此外,它还使数字更容易阅读,想象一个数字填充数百个数字的列中的几个前导零。
我同意Daniel将您的专栏更改为varchar。