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) 的设计初衷是为了明确表示这是一个布尔值字段。
相关推荐
Tony Bai34 分钟前
Rust 看了流泪,AI 看了沉默:扒开 Go 泛型最让你抓狂的“残疾”类型推断
开发语言·人工智能·后端·golang·rust
用户31673613034242 分钟前
javaLangchain4j从官方文档入手,看他做了什么——具体使用(二)
后端
無名路人43 分钟前
Zsh 脚本 + VS Code 任务:NestJS + Vue3 一键部署到 1Panel
运维·后端·自动化运维
ybwycx1 小时前
springboot之集成Elasticsearch
spring boot·后端·elasticsearch
程途知微2 小时前
AQS 同步器——Java 并发框架的核心底座全解析
java·后端
iPadiPhone2 小时前
分布式架构的“润滑剂”:RabbitMQ 核心原理与大厂面试避坑指南
分布式·后端·面试·架构·rabbitmq
武子康3 小时前
大数据-255 离线数仓 - Apache Atlas 数据血缘与元数据管理实战指南
大数据·后端·apache hive
javaTodo3 小时前
IntelliJ IDEA 2026.1 上强度了:Spring 运行时 Debug + AI 全面接入,太香了
后端
晴栀ay3 小时前
Generator + RxJS 重构 LLM 流式输出的“丝滑”架构
javascript·后端·llm
下次一定x3 小时前
深度解析 Kratos 客户端服务发现与负载均衡:从 Dial 入口到 gRPC 全链路落地(下篇)
后端·go