mysql如何存储boolean类型

MySQL没有内置的boolean数据类型。存储布尔值(true/false)的最佳方式是使用 TINYINT(1) 类型。在该类型中,1 代表 TRUE0 代表 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的记录

关键点与注意事项

  • 兼容性TRUEFALSE 是常量,分别等价于 10
  • ORM映射 :在Java (Hibernate/MyBatis) 中,TINYINT(1) 通常映射为 Boolean 类型,即 1 -> true0 -> false
  • 为什么是TINYINT(1) :虽然 TINYINT 可以存储 -128 到 127,但 TINYINT(1) 的设计初衷是为了明确表示这是一个布尔值字段。
相关推荐
AINative软件工程10 小时前
AI Agent 证据仲裁工程实践:别让检索结果按自信程度撒谎
人工智能·后端·ai编程
卷无止境10 小时前
FastAPI 权限管理实战:从 ACL 到 RBAC 的那些门道
后端·python·fastapi
GreenTea18 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
风流 少年18 小时前
Spring AI 2.0:Memory
java·后端·spring
万少19 小时前
给 DeepSeek Harness 装个"应用商店":一条命令,595 个插件随你逛
前端·javascript·后端
IT_陈寒1 天前
Python的GIL让我多写了500行代码
前端·人工智能·后端
IT爱学堂1 天前
精讲软件设计师(软考中级)一站式通关课_实战课程_慕课网
后端
战天战地站房顶1 天前
在 Windows Docker 中部署 PostgreSQL 17 + pgvector 完整指南
后端
卷无止境1 天前
FastAPI Guard 全解析,从概念到工程落地的实战指南
后端·python
卷无止境1 天前
FastAPI Users 全面解析:概念、原理与工程实战
后端·python