为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

炎炎设计 2019-06-29 14:50:18
用于存储布尔值的MySQL数据类型因为MySQL似乎没有任何“布尔”数据类型,所以在MySQL中存储真实/错误信息时,您会“滥用”哪种数据类型?特别是在编写和读取PHP脚本时。随着时间的推移,我使用并看到了几种方法:包含值0/1的varchar字段,包含字符串‘0’/‘1’或‘true’/‘false’的varchar字段最后,枚举字段包含两个选项“true”/“false”。上述任何一项似乎都不是最理想的。我倾向于使用tinyint 0/1变量,因为PHP中的自动类型转换给了我布尔值。那么,您使用哪种数据类型呢?是否有为我忽略的布尔值设计的类型?你认为使用一种或另一种类型有什么好处/缺点吗?
查看完整描述

3 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

BOOLBOOLEAN同义词TINYINT(1)..零是false,其他的都是true..

查看完整回答
反对 回复 2019-06-29
?
冉冉说

TA贡献1877条经验 获得超1个赞

这是一个优雅的解决方案,我非常欣赏,因为它使用的是零数据字节:

some_flag CHAR(0) DEFAULT NULL

若要将其设置为真,请将其设置为some_flag = ''把它设为假的some_flag = NULL.

然后,要测试是否为true,请检查是否有一些标志IS NOT NULL,若要测试是否为false,请检查是否有某个标志IS NULL.

(这个方法在JonWarrenLentz、BaronSchwartz和ArjenLentz的“高性能MySQL:优化、备份、复制和更多”中进行了描述。)


查看完整回答
反对 回复 2019-06-29
  • 3 回答
  • 0 关注
  • 2953 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信