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) 的设计初衷是为了明确表示这是一个布尔值字段。
相关推荐
暮年几秒前
Java Map并发-Hashtable
后端
未秃头的程序猿3 分钟前
从零到一:深入浅出分布式锁原理与Spring Boot实战(Redis + ZooKeeper)
spring boot·分布式·后端
Soofjan4 分钟前
MySQL(3.2):索引应用与优化
后端
黑牛儿5 分钟前
PHP 8.3性能暴涨实测|对比8.2,接口响应提速30%,配置无需大幅修改
android·开发语言·后端·php
Soofjan5 分钟前
MySQL(3.1):B+ 树索引原理
后端
Cache技术分享8 分钟前
386. Java IO API - 监控目录变化
前端·后端
YanDDDeat9 分钟前
【Spring】事务注解失效与传播机制
java·后端·spring
小陈工9 分钟前
python Web开发从入门到精通(二十七)微服务架构设计原则深度解析:告别拆分烦恼,掌握治理精髓(上)
后端·python·架构
橙露11 分钟前
MySQL 分库分表基础:水平拆分与路由规则实现
后端