MySQL-Boolean型

MySQL中的Boolean类型实际存储为tinyint,true对应1,false对应0。本文通过创建测试表、插入数据并进行检索测试,展示了= true/false和is true/false的查询效果。

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

MySQL-Boolean型

  • MySQL内部保存Boolean型是按照 「tinyint」1字节型「-128~127」的数字来保存。
  • 插入true 保存为 1
  • 插入false保存为 0
  • = true 检索出 true,1
  • = false 检索出 false,0
  • is true 检索出 非 0
  • is false 检索出 0

创建测试表

mysql> create table `test` (
    ->   `boolColumn` boolean
    -> );
Query OK, 0 rows affected (0.00 sec)

确认表定义

mysql> show create table test;
+-------+----------------------------------------------------------------+
| Table | Create Table                                                   |
+-------+----------------------------------------------------------------+
| test  | CREATE TABLE `test` (
  `boolColumn` tinyint(1) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
+-------+----------------------------------------------------------------+
1 row in set (0.00 sec)

插入数据测试

mysql> insert into test values (true), (false), (0), (1), (100), (-100), (-127), (-128)(127)(128)
    -> ;
ERROR 1264 (22003): Out of range value for column 'boolColumn' at row 10

插入结果确认

mysql> select * from test;
+------------+
| boolColumn |
+------------+
|          1 |true
|          0 |false
|          0 |0
|          1 |1
|        100 |
|       -100 |
|       -127 |
|       -128 |
|        127 |
+------------+
9 rows in set (0.00 sec)

可以看到,插入 true 是当 1 保存, 插入 false 是当 0 保存,-128~127 范围内可插入。

检索测试

测试 = true/false

mysql> select * from test where boolColumn = true;
+------------+
| boolColumn |
+------------+
|          1 |
|          1 |
+------------+
2 rows in set (0.00 sec)
mysql> select * from test where boolColumn = false;
+------------+
| boolColumn |
+------------+
|          0 |
|          0 |
+------------+
2 rows in set (0.00 sec)

以 true,1 插入的行 和 以 false,0 插入的行被检索出。

测试 is true/false

mysql> select * from test where boolColumn is true;
+------------+
| boolColumn |
+------------+
|          1 |
|          1 |
|        100 |
|       -100 |
|       -127 |
|       -128 |
|        127 |
+------------+
7 rows in set (0.00 sec)
mysql> select * from test where boolColumn is false;
+------------+
| boolColumn |
+------------+
|          0 |
|          0 |
+------------+
2 rows in set (0.00 sec)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值