用于存储布尔值的 MySQL 数据类型

代码工坊 毕业设计 1

由于 MySQL 似乎没有任何“布尔”数据类型,您“滥用”哪种数据类型在 MySQL 中存储真/假信息?

特别是在编写和读取 PHP 脚本的上下文中。

随着时间的推移,我使用并看到了几种方法:

  • tinyint,包含值 0/1 的 varchar 字段,
  • 包含字符串 '0'/'1' 或 'true'/'false' 的 varchar 字段
  • 最后枚举包含“真”/“假”两个选项的字段。

以上似乎都不是最佳的。我倾向于使用 tinyint 0/1 变体,因为 PHP 中的自动类型转换为我提供了相当简单的布尔值。

那么您使用哪种数据类型?有没有为我忽略的布尔值设计的类型?您是否看到使用一种或另一种类型的任何优点/缺点?

回复

共2条回复 我来回复
  • 代码货栈
    这个人很懒,什么都没有留下~
    评论

    对于 MySQL 5.0.3 及更高版本,您可以使用 BIT .手册说:

    从 MySQL 5.0.3 开始,BIT 数据类型用于存储位域值。一种 BIT(M) 可以存储 M 位值。M 的范围可以从 1 到 64。

    否则,根据 MySQL 手册,您可以使用 bool 和 boolean,它们目前是 tinyint (1) 的别名:

    Bool、Boolean:这些类型是 TINYINT (1) 的同义词。零值被认为是错误的。非零值被认为是真的。

    MySQL 还指出:

    我们打算在未来的 MySQL 版本中根据标准 SQL 实现完整的布尔类型处理。

    0条评论
  • 毕设工坊
    这个人很懒,什么都没有留下~
    评论

    BOOL 并且 BOOLEAN 是 的同义词 TINYINT(1) 。零是 false ,其他都是 true

    0条评论

发表回复

登录后才能评论