mysql数据库中布尔数据怎么存储_关于php:如何在MySQL中存储布尔数据类型?

哪个数据类型用于在MySQL中存储true/false信息?

尤其是用PHP脚本编写和阅读时。

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

tinyint, varchar fields containing the values 0/1,

varchar fields containing the strings '0'/'1' or 'true'/'false'

and finally enum Fields containing the two options 'true'/'false'.

似乎没有一个是最佳的,我更喜欢tinyint 0/1 variant,因为PHP中的自动类型转换给我的布尔值非常简单。

那么,是否有一个为布尔值设计的类型我忽略了?

您是否看到使用一种或另一种类型有什么优点/缺点?

Tinyint是个不错的选择。

这里有一个很好的答案:stackoverflow.com/questions/289727/…

有很多选择。

为了与许多不同的MySQL客户端、客户端库、ORM等兼容,我们已经解决了

col  TINYINT(1) UNSIGNED COMMENT 'boolean, ...'

除了Boolean之外,我们不使用TINYINT(1) UNSIGNED数据类型。(我们可以在其中添加NOT NULL)我们添加了一个注释,其中"boolean"作为第一个字符串,后跟实际的描述。

注意,(1)不会影响可存储的值的范围。它仍然可以保存0到255之间的整数值。我们只是为了帮助区分"布尔"类型和其他tinyint值,这些值不是布尔值。

我们将空值作为空值处理,将0的值作为"false",任何其他值都被认为是"true"…与mysql在布尔上下文中解释整数值的方式相同。

我们没有遇到任何无法处理整数类型的客户端。

对于mysql,使用类型boolean not null类型喜欢

ALTER TABLE `products` ADD `test` BOOLEAN NOT NULL;

如果布尔值不起作用,则使用类似int的tinyint(1)不为空例如,ALTER TABLE产品ADD测试TINYINT(1) NOT NULL;产品

重要的tinyint(1)值必须在tinyint内。

为什么需要(1)跟在TINYINT后面?它不会影响可存储的值的范围。

是的,需要使用miny int,因为它的范围在-128到127之间,所以需要指定是否使用miny int。

是的,可以存储在TINYINT中的值的范围是-128到127。这与可以存储在TINYINT(1)中的值的范围相同。同样,没有解释为什么有必要使用TINYINT(1)与TINYINT。可以存储的值的范围是相同的。它有什么区别?

对于MySQL5.0.3及更高版本,可以使用bit或tinyint。

这里有一个更详细的答案

注意,一些客户机/客户机库/ORM映射不能很好地处理BIT数据类型。但是我们不会遇到整数类型的问题。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值