Mysql 的 bit 数据类型
bit类型
bit 类型不是对应true和false,也不是只有一位
示例
-
新建数据表test
CREATE TABLE `test` ( `id` int(20) NOT NULL, `codes` bit(8) NOT NULL, `remark` varchar(32) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-
插入数据
delete from test; insert into test(id, codes, remark) values (1, 1, 'number 1'), (2, 2, 'number 2'), (3, '1', 'string 1'), (4, 'a', 'string a'), (5, true, 'boolean true'), (6, false, 'boolean false');
-
存储结果如下
-
结论
数字被转换成二进制
字符将被转换成ascii码
boolean 类型被转换成0或1
多选的应用
有以下选项:苹果(1),梨(2),西瓜(4),香蕉(8),可以选中其中任意几项,并使用一个字段保存
- 分别使用数字表示选项:苹果(1),梨(2),西瓜(4),香蕉(8)
- 转换成二进制为:苹果(0001),梨(0010),西瓜(0100),香蕉(1000)
- 将选中的数字相加(或进行位或运算),并存成bit字段即可
- 读取结果时,将保存的字段与选项的代码进行位与运算即可 ``