可以使用什麼數據類型來存儲像1,2,3,4,5
這樣的值。我希望他們保持整數而不是字符串。我知道我可以使用varchar() or enum() or set()
,但那些是字符串。我正在使用MySQL版本5.5.25
。存儲的值也不固定。它可能是1
或1,2,3
MySql數據類型,整數以逗號分隔的方式存儲整數
-3
A
回答
2
正確的數據類型是一個表。您應該可以每行存儲一個值。
通常,這將是關聯表,因爲該組值將被分配給某個實體。喜歡的東西:
create table EntityNumbers (
EntityNumberId int auto_increment primary key,
EntityId int references Entities(EntityId),
Number int
);
然後,如果你想返回列表,使用group_concat()
:
select EntityId, group_concat(Number)
from EntityNumbers
group by EntityId;
1
MySQL有沒有這樣的數據類型。您可以用來在單個字段中存儲多個值的唯一數據類型是Set數據類型,它只存儲字符串。
在關係數據庫中,針對此問題的通常的解決方案是一個額外的表,具有一個外鍵原始表,其可以具有多個行,即在原始表中的每一行。
所以不是
id | name | values
1 | foo | 7,8,9
你會
id | name
1 | foo
和
id | foreign_key | value
1 | 1 | 7
2 | 1 | 8
3 | 1 | 9
,並使用選擇它們
SELECT value from original_table join additional_table ON (id == foreign_key)
WHERE original_table.id == 1
這導致3個結果行。
0
tinyint() stores 1 byte
smallint() stores 2 bytes
mediumint() stores 3 bytes
int() stores 4 bytes
相關問題
- 1. 如何以逗號分隔的方式存儲數據庫值?
- 2. 將逗號分隔的整數分解爲整數?
- 3. 以逗號分隔數據
- 4. 在MySQL中存儲逗號分隔的數據
- 5. 轉移整數數千逗號分隔符,並保存爲ULONG
- 6. 如何在錢數據類型如逗號分隔逗號
- 7. 逗號分隔列表在整數MySQL中的REGEX
- 8. MySQL數據類型Double:逗號或點作爲分隔符?
- 9. 從mysql逗號獲取數據分隔
- 10. 以整數數據類型
- 11. 熊貓數據幀逗號,注意分隔爲數據類型
- 12. MYSQL JOIN有條件檢查整數對逗號分隔列表
- 13. 如何過濾逗號分隔的整數值以JavaScript
- 14. 以逗號分隔的字符串整數列表
- 15. 轉換逗號分隔的字符串列表,以整數
- 16. 輸出整數以逗號分隔的C++程序
- 17. 正則表達式:逗號分隔的整數
- 18. 正則表達式用逗號分隔的整數
- 19. 以逗號分隔,製表符分隔格式組合數據
- 20. 以數字方式分類逗號分隔的數字字符串
- 21. 獲取數據以逗號分隔,
- 22. 以逗號分隔的泛型類型
- 23. 將逗號分隔的整數列表轉換爲數組
- 24. 將逗號分隔的文件讀取到整數數組中
- 25. 需要regrex將數組中的整數分隔爲逗號分隔
- 26. PHP:打開逗號分隔值成整數數組
- 27. 如何連接整數數組爲逗號分隔字符串
- 28. shell腳本(bash) - 只接受正整數或逗號分隔的正整數
- 29. 如何轉換逗號分隔的數字爲整數MySQL查詢GROUP_CONCAT
- 30. 顯示存儲在.txt文件中的逗號分隔數據
...和'bigint'是8個字節,但這些事實與問題無關。 –