mysql的bit类型

文章详细介绍了MySQL中bit类型字段的插入方法,强调了使用bvalue符号的正确性,并展示了不同方式的查询,包括显示十进制、二进制、八进制和十六进制的值。此外,还提到了在处理是/否标识时,如何使用cast进行类型转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mysql有种字段类型是bit。

1.如何插入呢?

它的插入必须采用:可以使用b’value’符号写位字段值。value是一个用0和1写成的二进制值。

mysql> create table an_bit (id bit(8));     
Query OK, 0 rows affected (0.00 sec)

mysql> insert into an_bit values (11);   
Query OK, 1 row affected (0.00 sec)虽然可以插入,但是实际插入的数值是11(十进制),不是3(十进制)。

mysql> insert into an_bit values (b’11′);   
Query OK, 1 row affected (0.00 sec)这才是正确的插入方法。 插入的值是3(十进制)

2. 如何查询呢?

mysql> select * from an_bit;

+——+| id   |+——+|||     |+——+2 rows in set (0.00 sec)这样是不对的,看不到东西。

mysql> select id+0 from an_bit;

+——+| id+0 |+——+|   11 ||    3 |+——+2 rows in set (0.00 sec)这是正确的,可以看到十进制的值。

mysql> select bin(id+0) from an_bit;

+———–+| bin(id+0) |+———–+| 1011      || 11        |+———–+2 rows in set (0.00 sec)这是二进制的值。

mysql> select oct(id+0) from an_bit;

+———–+| oct(id+0) |+———–+| 13        || 3         |+———–+2 rows in set (0.00 sec)这是八进制的值。

mysql> select hex(id+0) from an_bit;

+———–+| hex(id+0) |+———–+| B         || 3         |+———–+2 rows in set (0.00 sec)这是十六进制的值。

如果使用bit类型来做‘是、否’的标识,在mysql使用cast做类型转换时,需要先查出十进制的值,再使用cast对十进制的值做类型转换,即cast(字段名+0 as char) ,举例:
select id, question, answer, cast(answer_is_gpt+0 as char) as gpt
from ''' + table_name + ''' 
where id in (1292, 1782, 2342, 2441);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值