【问题标题】:BOOL and tinyint(1) ... unsigned?BOOL 和 tinyint(1) ... 无符号?
【发布时间】:2011-09-30 19:58:45
【问题描述】:

我读到mysql中的bool类型是tinyint(1)的别名,所以我应该使用tinyint

我的问题如下: 我是否需要声明它未签名,我的意思是,有必要吗?

purchased tinyint(1) unsigned not null DEFAULT 0,

or

purchased tinyint(1) not null DEFAULT 0,

【问题讨论】:

  • 你在使用BOOL有什么问题吗?
  • "因此我应该使用 tinyint" - 为什么会这样呢? BOOL 非常好,(在我看来)更能表达你的意图。 TINYINT(1) 可能意味着“从 0 到 9”; BOOL 特指“0 或 1”(尽管我想你可能歪曲了你的意图:-))。

标签: mysql boolean


【解决方案1】:

没必要;留下签名。事实上,无论如何都没有关系——0 和 1 都在 TINYINT 的有效值范围内,而不管它的符号性如何。

但是,说真的,只需将其声明为BOOL,它就很清楚这是一个真或假值。

【讨论】:

  • 我不知道我可以在 mysql 中使用 bool,虽然 mysql 不支持 bool.... 学习永远不会迟到...
  • BOOLTINYINT(1) 的同义词。
  • 有些版本可能不支持 BOOL,使用 tinyint 也很好,因为如果您需要在不同的 SQL 中使用查询,转换起来更容易!
【解决方案2】:

不必将其声明为无符号,尤其是在您使用它来存储布尔值时。

【讨论】:

    猜你喜欢
    • 2013-08-09
    • 1970-01-01
    • 2011-02-13
    • 2012-02-01
    • 2018-01-14
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 2015-07-11
    相关资源
    最近更新 更多