SET表示一个字符串对象,可以包含0个或多个成员,但成员个数的上限为64。设置字段值时,可以取取值范围内的0个或多个值。
当SET类型包含的成员个数不同时,其所占用的存储空间也是不同的,具体如下:
SET类型在存储数据时成员个数越多,其占用的存储空间越大。注意: SET类型在选取成员时,可以一次选择多个成员,这一点与ENUM类型不同。
use dbtest12;CREATE TABLE test_set(s SET ('A', 'B', 'C'));INSERT INTO test_set (s) VALUES ('A'), ('A,B');#插入重复的SET类型成员时,MySQL会自动删除重复的成员INSERT INTO test_set (s) VALUES ('A,B,C,A');#向SET类型的字段插入SET成员中不存在的值时,MySQL会抛出错误。INSERT INTO test_set (s) VALUES ('A,B,C,D');SELECT *FROM test_set;# 例子:CREATE TABLE temp_mul(gender ENUM('男','女'),hobby SET('吃饭','睡觉','打豆豆','写代码'));INSERT INTO temp_mulVALUES('男','睡觉,打豆豆');SELECT *FROM temp_mul;#Data truncated for column 'gender' at row 1INSERT INTO temp_mulVALUES('男,女','睡觉,打豆豆');
