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 变体兼容。还有其他类似的数据类型,例如DECIMAL
和NUMERIC
。【参考方案2】:
MySQL 并没有真正的 BOOLEAN 类型,如果你创建一个 BOOLEAN 列,它实际上是一个 TINYINT。
不过,将 TINYINT 视为布尔值并没有太大问题,如果您将 0 视为假,将非 0 视为真,那也没关系。在 php 中,如果 $column 是除 0 或计算结果为 0 之外的任何值,则 if ($column)
之类的语句将返回 true。如果您需要将其显式设为 bool,则可以通过 $column = ($column != 0);
轻松转换它
【讨论】:
以上是关于mysql 数据库中的布尔字段的主要内容,如果未能解决你的问题,请参考以下文章