我想使用 MySQL 在表格中使用 ENUM 功能。
我创建了一个 tbl_test 表 id 作为主键, enum_col 字段作为 ENUM 数据类型。
CREATE TABLE tbl_test(
id INT NOT NULL AUTO_INCREMENT,
enum_col ENUM('a','b','c') NOT NULL,
PRIMARY KEY ( id )
);
当我尝试存储单枚举值时,它已插入但当我尝试存储多个枚举值时,它会抛出 SQL错误
错误:
Data truncated for column 'enum_col' at row 1
单个ENUM值(正确):
INSERT INTO tbl_test(id, enum_col) values(1, 'a');
多个ENUM值(FAILED):
INSERT INTO tbl_test(id, enum_col) values(2, 'a,b');
是否有想法在 ENUM 数据类型中存储多个值?
答案 0 :(得分:2)
这是因为你只能在其中存储一个值,实际上你绝对应该只在任何类型的列中存储一个值。
使用单独的表格。然后,您可以使用多个记录存储尽可能多的值。例如:
tbl_test
--------
id | name
1 | test_X
2 | test_Y
3 | test_Z
tbl_test_enums
--------------
test_id | enum_value
1 | a
1 | b
2 | a
3 | c
答案 1 :(得分:1)
如果要存储多个值,则应使用SET
数据类型而不是ENUM