我要存儲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. 用於存儲URL的數據類型
- 2. 用於存儲歷史價格的MySQL JSON數據類型
- 3. MySQL - 用於存儲消息/對話的首選數據類型
- 4. 從零開始的數據庫
- 5. 用Django的整數列存儲前導零的數據
- 6. MySQL位數據類型存儲空間
- 7. 用於存儲整數和整數範圍的數據結構?
- 8. 從整數類型「修剪」右零
- 9. 用於存儲小數的MySQL字段類型
- 10. 數據類型來存儲整數和SQL Server的浮點值
- 11. 圖JS數據從零開始
- 12. 如何使用OkHTTP(在Android)來存儲MySQL的原始數據類型
- 13. 指數(從零開始)必須大於或等於零
- 14. C#初始化整型數據類型
- 15. 根據開始日期存儲數據
- 16. MySQL:用於存儲長備註的最有效的數據類型?
- 17. 用於存儲圖像的數據類型的選擇
- 18. 這是用於存儲類,PHP的VAR或MySQL數據庫
- 19. 用於在java中存儲數據的類,模擬mysql表
- 20. 在MySQL中存儲動態數據和數據類型
- 21. 關於mybatis的參數類型爲原始數據類型?
- 22. 用於存儲構建版本的SQL數據類型
- 23. 什麼類型的數據庫用於存儲ML實驗
- 24. 用於存儲長列表的數據類型
- 25. LINQ不提供用於存儲文件的byte []數據類型
- 26. 用於存儲貨幣值的VB.NET最佳數據類型
- 27. 哪種數據類型用於存儲較大的值?
- 28. 用於在表中存儲字符串的C#數據類型
- 29. 適用於存儲ISOYearMonth的Oracle數據類型是什麼?
- 30. 用於存儲鍵值映射的最佳PostgreSQL數據類型?
您可以使用int,但其輸出在格式化00 {INT} ... – 2011-06-08 13:50:05
@ Good.Dima不工作,因爲IDD前綴是在大多數情況下,'00',但並非總是如此。它在大多數情況下以'0'開始,但並非總是如此。 – 2011-06-08 14:03:26