可以使用什么数据类型来存储像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个字节,但这些事实与问题无关。 –