mysql如何存储布尔值_用于存储布尔值的MySQL数据类型

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

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

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

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

tinyint,包含值0/1的varchar字段,

包含字符串'0'/'1'或'true'/'false'的varchar字段

最后枚举包含两个选项'true'/'false'的字段。

以上都不是最佳选择。 我更倾向于使用tinyint 0/1变体,因为PHP中的自动类型转换非常简单地给出了布尔值。

那你使用哪种数据类型? 有没有为布尔值设计的类型我忽略了? 您是否看到使用某种类型的优点/缺点?

11个解决方案

1103 votes

对于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还声明:

我们打算实现完整的布尔值   类型处理,按照   标准SQL,在未来的MySQL中   发布。

参考文献:

你可能感兴趣的:(mysql如何存储布尔值)