mysql数据类型有布尔么_哪个MySQL数据类型用于存储布尔值

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

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

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

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

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

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

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

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

#1楼

我厌倦了尝试获得零,NULLS,并且''准确地围绕PHP,MySql和POST值的循环,所以我只使用'是'和'否'。

这种方法完美无缺,不需要特别的处理,这种处理不明显且容易做到。

#2楼

参考Mysql中的这个链接布尔数据类型 ,根据应用程序的用法,如果只想存储0或1,则bit(1)是更好的选择。

#3楼

我使用TINYINT(1)来在Mysql中存储布尔值。

我不知道使用这个是否有任何好处...但如果我没有错,mysql可以存储boolean(BOOL)并将其存储为tinyint(1)

#4楼

对于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)的同义词。 值为零被视为false。 非零值被认为是真实的。

MySQL还声明:

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

#5楼

BOOL和BOOLEAN是TINYINT(1)同义词。 零是false ,其他任何事都是true 。 更多信息在这里 。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值