mysql 数据库中的布尔字段

Posted

技术标签:

【中文标题】mysql 数据库中的布尔字段【英文标题】:Boolean Field in mysql db 【发布时间】:2011-06-13 01:06:18 【问题描述】:

我想将我的值作为布尔值保存在我的 mysql 数据库中。但不知何故,我无法保存它,mysql 自动将它保存为 tinyInt 类型。还告诉我布尔值的默认值。我们如何传递值?

【问题讨论】:

【参考方案1】:

在 MySQL 中,BOOLEAN 类型是 TINYINT 的同义词。没有专用的BOOLEAN 类型。 接受的值是TINYINT 的值,即 0 表示假,1-255(最好是 1)表示真。

【讨论】:

但是为什么 bool 和 tinyint 是不同的。如果它们相同,则应该有一个 没有'BOOL'。只有 'TINYINT' 可以写成 'BOOL'。 我现在明白了,但我只是很困惑,如果我们可以使用 tinyInt,为什么他们在 mysql 中保留 bool。应该从列表中删除 Bool。 它的存在是为了与其他 SQL 变体兼容。还有其他类似的数据类型,例如DECIMALNUMERIC【参考方案2】:

MySQL 并没有真正的 BOOLEAN 类型,如果你创建一个 BOOLEAN 列,它实际上是一个 TINYINT。

不过,将 TINYINT 视为布尔值并没有太大问题,如果您将 0 视为假,将非 0 视为真,那也没关系。在 php 中,如果 $column 是除 0 或计算结果为 0 之外的任何值,则 if ($column) 之类的语句将返回 true。如果您需要将其显式设为 bool,则可以通过 $column = ($column != 0); 轻松转换它

【讨论】:

以上是关于mysql 数据库中的布尔字段的主要内容,如果未能解决你的问题,请参考以下文章

mysql创建布尔字段

mysql有布尔类型吗?

如何将布尔字段添加到 MySQL?

布尔字段 Oracle vs MySQL

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

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