- MySQL中使用bit存储数据,含义只能表示0或1,bit称为位数据类型;且不能用于计算。存储消耗<=1个字节【bit类型占用的空间与bit类型的列所在表的位置有关,有些情况下bit占用了一个字节,有些情况下bit实际占用了几个位,不足一个字节】。
- bit与Java中的Boolean类型相对应,0表示false,1表示true。
- 一般我们会使用bit(M)表示使用几位数据。
- 在实际业务中,更常用的是使用bit(1),用1位来表示0或1,映射到Java中的数据类型对应的就是false或true。如果使用多位,比如bit(4),用4位来表示数据的话,就要使用4位来表示0或1,0000/0001.
- MySQL中,如果 使用bit(M) M>1来表示数据,数据大小不仅可以表示0或1,也可以表示大于1的数,映射到Java的数据类型Boolean时, 0对应为false,非0的数据都将映射为true。
基本操作:
1、插入
插入数据时,插入true,false,数据库会相应的转换成1,0。
2、更新
更新最常用的办法是先查询判断再进行更新,这样就需要先查询一次,再执行更新.
如果不想进行查询,直接对它进行更新,每次得到更新前的相反值的话,可以使用以下方法:
① substr函数
update anketo1 set fb = substring(‘10’,fb+1,1) WHERE id =5
② 直接取反
update anketo1 set fb = ~ fb WHERE id =5
③ 用ABS取绝对值
update anketo1 set fb = abs(fb-1)
3、查询
查询数据时,得到的数据是0和1,而不是true或false。