在数据库中,“布尔值(Boolean)”通常表示真/假、是/否、存在/不存在这类状态。不同数据库对布尔值的支持和写法略有差异,下面按常见情况给你讲清楚。
布尔值只有两个状态:
TRUE(真 / 是)FALSE(假 / 否)在业务里常见用途:
is_deleted)is_enabled)is_admin)MySQL 没有真正的布尔类型,一般用 TINYINT(1) 模拟:
1 表示 TRUE0 表示 FALSECREATE TABLE user (
id INT PRIMARY KEY,
is_admin TINYINT(1) DEFAULT 0
);
插入数据:
INSERT INTO user (id, is_admin) VALUES (1, 1);
INSERT INTO user (id, is_admin) VALUES (2, 0);
查询:
SELECT * FROM user WHERE is_admin = 1;
✅ MySQL 也支持写 TRUE / FALSE,但底层还是 1 / 0
PostgreSQL 原生支持 BOOLEAN
CREATE TABLE user (
id SERIAL PRIMARY KEY,
is_admin BOOLEAN DEFAULT FALSE
);
插入:
INSERT INTO user (is_admin) VALUES (TRUE);
INSERT INTO user (is_admin) VALUES (FALSE);
查询:
SELECT * FROM user WHERE is_admin = TRUE;
使用 BIT 类型:
1 = TRUE0 = FALSENULL 也可能存在CREATE TABLE user (
id INT PRIMARY KEY,
is_admin BIT
);
INSERT INTO user VALUES (1, 1);
SQLite 布尔本质是:
1 = true0 = falseCREATE TABLE user (
id INTEGER,
is_admin INTEGER
);
PreparedStatement ps = conn.prepareStatement(
"INSERT INTO user (is_admin) VALUES (?)"
);
ps.setBoolean(1, true);
class User(Base):
__tablename__ = 'user'
is_admin = Column(Boolean, default=False)
'true' / 'false' 存布尔DEFAULT FALSE
WHERE is_deleted = FALSE
而不是:WHERE is_deleted = 0
(可读性和跨数据库兼容性更好)如果你告诉我:
我可以直接给你针对你场景的示例。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。