我要存储isdCodes
这是格式0091
001
009751
009665
等在数据库中,初始将基本上从零开始。我试图使用int作为数据类型与无符号属性,但它似乎并没有工作。哪种数据类型适合存储这种类型的值?用于存储从零开始的整数的MySQL数据类型?
回答
不工作,因为IDD前缀是在大多数情况下
00
但并非总是如此。它在大多数情况下始于0
,但并不总是如此。
由于前导零的数量关系,(即0091
≠091
),我会去在这种情况下varchar
。
如果你真的想使用一些数字类型,我想你可以在数字前加上一个1
来保持零,但这会有点破解。
不会,但是没关系,因为我只会存储整数? – 2011-06-08 13:51:43
使用varchar数字?除非您存储千兆字节的这些数字,否则我不会看到它的主要问题。如果前导零的数量实际上很重要,我不认为数字类型是合适的。 – aioobe 2011-06-08 13:53:22
不需要使用varchar和concatenation ...如果使用zerofilled值,db仅在输出信息时关注前导零。一个'SELECT * FROM table WHERE value = 1'将选择值为1的行,不管它有多少前导零。 – Nikoloff 2011-06-08 14:08:37
您可以使用ZEROFILL,即:
CREATE TABLE test (value int zerofill);
INSERT INTO test values(1), (20), (515);
使用零填充的问题是它会填满所有的零,例如,如果我decalred int(11),那么它将填写值与00000000001而不是只是'001' – 2011-06-08 13:54:50
您可以更改字段的精度,但我不知道这是否会有所帮助。你将存储什么价值?不同的数字,全部以'00'开头?这对我来说没有什么意义,但是因为你对精准度给予的不满意,我不确定你想要完成什么...... – Nikoloff 2011-06-08 13:57:38
@Ibrahim,更新了我的选择'1'的答案 - > '001'和'1000' - >'001000'。 – aioobe 2011-06-08 14:04:02
我会用一些VARCHAR对于自ISD代码不是你想“与计算”的东西,是一个数字序列,而比整数本身。领先的0
和00
事情表明非常好。
编辑 刚才看到存在像8~10
这样的IDD前缀。所以没有办法使用类似数字的数据类型。如果你想能够存储任何ISD代码,你必须使用类似varchar或类似的东西。
- 1. 用于存储血型的MySQL数据类型?
- 2. 用于存储URL的数据类型
- 3. MySql数据类型,整数以逗号分隔的方式存储整数
- 4. 用于存储历史价格的MySQL JSON数据类型
- 5. MySQL - 用于存储消息/对话的首选数据类型
- 6. 整数TRIMS开始零
- 7. 从零开始的数据库
- 8. 用Django的整数列存储前导零的数据
- 9. 用于在MySQL中保存GPS数据的数据类型
- 10. MySQL位数据类型存储空间
- 11. 其中MySQL的数据类型来存储的鸣叫从Twitter
- 12. 用于存储整数和整数范围的数据结构?
- 13. 哪种数据类型用于存储用户数据?
- 14. 用于在MySQL中存储高精度小数的数据类型
- 15. mySQL数据类型用于存储具有缩写后缀的数字吗?
- 16. 用于存储对象数组的CQL数据类型
- 17. 用于存储负数的正确数据类型
- 18. 用于存储大型JSON的SQL Server数据库中的数据类型
- 19. 用于存储小数的MySQL字段类型
- 20. 数据类型来存储整数和SQL Server的浮点值
- 21. 存储整数和算术运算符的数据类型?
- 22. 从整数类型“修剪”右零
- 23. ASP.NET从零开始检索数据
- 24. 图JS数据从零开始
- 25. BadPaddingException:数据必须从零开始
- 26. 如何使用OkHTTP(在Android)来存储MySQL的原始数据类型
- 27. 指数(从零开始)必须大于或等于零误差
- 28. 指数(从零开始)必须大于或等于零
- 29. 计算SQL Server sql_variant数据类型用于存储固定长度数据类型的存储空间
- 30. 从零开始计数
您可以使用int,但其输出在格式化00 {INT} ... – 2011-06-08 13:50:05
@ Good.Dima不工作,因为IDD前缀是在大多数情况下,'00',但并非总是如此。它在大多数情况下以'0'开始,但并非总是如此。 – 2011-06-08 14:03:26