SET类型

表结构

Table: t1
Create Table: CREATE TABLE `t1` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `se` set('a','b','c','d','e') DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8

 mysql保存set类型也是根据数字下标来保存的,但是和enum类型不同的是,enum类型下标是1,2,3,4,5...而set类型下标则是1,2,4,8,16...

insert into t1 values (null,10);

执行结果

+----+------+
| id | se   |
+----+------+
|  1 | b,d  |
+----+------+

2+8=10;2对应'b',8对应'd'

insert into t1 values (null,100);

执行结果

+----+------+
| id | se   |
+----+------+
|  1 | b,d  |
|  2 | c    |
+----+------+

100 = 64+32+4 而这里没有64和32对应的字符,4对应的字符为'c'。得到的结果就是保存'c'

猜你喜欢

转载自www.cnblogs.com/bibiafa/p/9198563.html
今日推荐