由于 MySQL 似乎没有任何“布尔”数据类型,您“滥用”哪种数据类型在 MySQL 中存储真/假信息?
特别是在编写和读取 PHP 脚本的上下文中。
随着时间的推移,我使用并看到了几种方法:
以上似乎都不是最佳的。我倾向于使用 tinyint 0/1 变体,因为 PHP 中的自动类型转换为我提供了相当简单的布尔值。
那么您使用哪种数据类型?有没有为我忽略的布尔值设计的类型?您是否看到使用一种或另一种类型的任何优点/缺点?
对于 MySQL 5.0.3 及更高版本,您可以使用BIT. 手册说:
BIT
从 MySQL 5.0.3 开始,BIT 数据类型用于存储位域值。一种 BIT(M) 可以存储 M 位值。M 的范围可以从 1 到 64。
否则,根据 MySQL 手册,您可以使用BOOLor BOOLEAN,它们目前是tinyint (1) 的别名:
BOOL
BOOLEAN
Bool、Boolean:这些类型是TINYINT (1) 的同义词。零值被认为是错误的。非零值被认为是真的。
MySQL 还指出:
我们打算在未来的 MySQL 版本中根据标准 SQL 实现完整的布尔类型处理。
参考资料:http ://dev.mysql.com/doc/refman/5.5/en/numeric-type- overview.html