MySQL数据库数据类型之ENUM、SET、BOOL/BOOLEAN、TINYINT
这篇讲的是 MySQL 中几个看似简单却容易用错的数据类型。作者聚焦于 ENUM、SET,以及常被混淆的 BOOL/BOOLEAN 和 TINYINT。 文章的核心观点很明确:别被 BOOL/BOOLEAN 的名字骗了,它在 MySQL 里其实就是 TINYINT(1) 的一个“马甲”,存储的仍然是 0 和 1。而 ENUM 和 SET 则完全不同,它们允许你预定义一个字符串的集合。关键区别在于,ENUM 一次只能选一个值,适合存储如“状态”或“性别”这类单选项;SET 则支持选择多个值,适合存储如“用户兴趣标签”这类多选项,底层用位运算来实现。 作者通过对比,厘清了这几个类型的本质差异和适用场景,比如用 ENUM 约束状态字段的值域,能有效防止非法数据插入;而用 SET 存储多选标签,则比用逗号分隔的字符串更规范、查询也更高效。这篇文章帮助开发者避开了“布尔类型”的直觉陷阱,并理解了如何为不同场景选择最合适的枚举类型。