mysql如何存储boolean类型

MySQL没有内置的boolean数据类型。存储布尔值(true/false)的最佳方式是使用 TINYINT(1) 类型。在该类型中,1 代表 TRUE,0 代表 FALSE。虽然可以使用 BOOLEAN 关键字,但MySQL会将其自动转换为 TINYINT(1)。

详细操作指南

  1. 建表定义

    使用 TINYINT(1) 或 BOOLEAN(会被自动转换)。

    sql

    sql 复制代码
    CREATE TABLE example (
        id INT PRIMARY KEY,
        is_active TINYINT(1) -- 推荐
        -- or is_active BOOLEAN (会被转换成TINYINT(1))
    );
  2. 插入数据

    直接使用 TRUE/FALSE 关键字,或数字 1/0。

    sql

    sql 复制代码
    INSERT INTO example (id, is_active) VALUES (1, TRUE);
    INSERT INTO example (id, is_active) VALUES (2, 0);
  3. 查询数据

    查询结果仍为数字0或1。

    sql

    sql 复制代码
    SELECT * FROM example WHERE is_active = 1; -- 查询为true的记录

关键点与注意事项

  • 兼容性 :TRUE 和 FALSE 是常量,分别等价于 1 和 0。
  • ORM映射 :在Java (Hibernate/MyBatis) 中,TINYINT(1) 通常映射为 Boolean 类型,即 1 -> true,0 -> false。
  • 为什么是TINYINT(1) :虽然 TINYINT 可以存储 -128 到 127,但 TINYINT(1) 的设计初衷是为了明确表示这是一个布尔值字段。
相关推荐
码事漫谈1 小时前
人设带处境,AI 更入戏
后端
掘金酱1 小时前
【10.24 特别活动】AI 时代,程序员的新饭碗在哪里?
前端·人工智能·后端
leeyi1 小时前
缓存同步之后,还要考虑没收到消息的节点
后端·性能优化·erlang
IT_陈寒1 小时前
Redis的原子性竟然失效了?记一次分布式锁翻车实录
前端·人工智能·后端
shengjk11 小时前
既然 gRPC 底层也是 HTTP,为什么大厂还非要死磕 RPC?真相全在这!
后端
回家路上绕了弯1 小时前
人和 Agent 怎么一起干活:把任务交出去,把判断留在关键处
后端
波力海苔夹心脆6752 小时前
C# 正则表达式零基础入门:从“看得懂“到“会用“
经验分享·后端·mysql·正则表达式·c#
ServBay2 小时前
DeepSeek 又出王炸,用 DeepInfer 搭建自己的服务是不是很容易?
后端·ai编程·deepseek
.Bryce.3 小时前
MCP+A2A+ANP,Agent通信协议的完整知识地图
java·人工智能·后端·agent·通信协议
JuiceFS3 小时前
面向 EB 级 AI 存储:JuiceFS 企业版架构演进
人工智能·后端