我必须在数据库中存储isdCodes
0091
001
009751
等格式的009665
,初始化基本上从零开始。我尝试使用int作为数据类型与unsigned属性,但它似乎不起作用。哪种数据类型适合存储此类值?
答案 0 :(得分:3)
不起作用,因为IDD前缀在大多数情况下是
00
,但并非总是如此。它在大多数情况下以0
开始,但并非总是如此。
由于前导零的数量很重要(即0091
≠091
),在这种情况下,我会选择varchar
。
如果你真的想要使用某种数字类型,我猜你可以在数字前加1
来保持零,但这有点像黑客。
答案 1 :(得分:0)
我会使用一些varchar,因为 ISD代码不是你想要“计算”的东西,而是数字序列而不是整数本身。领先的0
和00
表明非常好。
修改强>
刚刚看到像8~10
这样的IDD前缀存在。所以没有办法使用类似数字的数据类型。如果您希望能够存储任何ISD代码,则必须使用varchar或类似的东西。
答案 2 :(得分:-1)
您可以使用ZEROFILL,即:
CREATE TABLE test (value int zerofill);
INSERT INTO test values(1), (20), (515);