由于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手册,您可以使用bool和boolean,它们是tinyint(1)的别名:
Bool,布尔值:这些类型是TINYINT(1)的同义词。零值被认为是错误的。非零值被认为是正确的。
MySQL还指出:
我们打算在将来的MySQL版本中根据标准SQL实现完整的布尔类型处理。
参考:http : //dev.mysql.com/doc/refman/5.5/en/numeric-type- overview.html