由于MySQL似乎没有任何“布尔”数据类型,那么您“滥用”哪种数据类型来在MySQL中存储真/假信息?
特别是在写入和读取 PHP 脚本的情况下。
随着时间的推移,我使用并看到了几种方法:
- tinyint、包含值 0/1 的 varchar 字段,
- 包含字符串“0”/“1”或“true”/“false”的 varchar 字段
- 最后是包含两个选项“true”/“false”的枚举字段。
以上似乎都不是最佳的。我更喜欢tinyint 0/1 变体,因为PHP 中的自动类型转换为我提供了相当简单的布尔值。
那么您使用哪种数据类型?是否有一种为布尔值设计的类型被我忽略了?您认为使用一种或另一种类型有什么优点/缺点吗?
对于 MySQL 5.0.3 及更高版本,您可以使用BIT
。手册说:
从 MySQL 5.0.3 开始,BIT 数据类型用于存储位字段
价值观。 BIT(M) 类型允许存储 M 位值。 M可范围
从 1 到 64。
否则,根据MySQL手册你可以使用BOOL
or BOOLEAN
,目前是别名tinyint(1):
Bool、Boolean:这些类型是同义词TINYINT(1).值为
零被认为是错误的。非零
值被认为是真实的。
MySQL 还指出:
我们打算实现完整的布尔值
类型处理,按照
标准 SQL,未来的 MySQL
发布。
参考:http://dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)