SET类型

Posted bibiafa

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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‘

 

以上是关于SET类型的主要内容,如果未能解决你的问题,请参考以下文章