【发布时间】:2011-01-24 08:46:49
【问题描述】:
MySQL 没有定义不同的布尔数据类型,而是选择为 TINYINT(1) 创建 BOOL 和 BOOLEAN 别名。为什么会这样?
【问题讨论】:
MySQL 没有定义不同的布尔数据类型,而是选择为 TINYINT(1) 创建 BOOL 和 BOOLEAN 别名。为什么会这样?
【问题讨论】:
这是因为 SQL 规范直到 SQL:1999 才定义一个,并且没有强制执行。 MySQL 领先于大多数包只是因为允许关键字 - MSSQL、DB2 和 Oracle 使用 BIT 和一些真/假常量来伪造它。
(基本上是出于同样的原因,尽管 SQL 规范声明它的发音为“ess queue ell”,但我认识的每个人都只是说“sequel”,因为我们很懒且理解上下文。)
【讨论】:
如果我正确理解您的问题,那是因为 Boolean values in MySql 只是别名为 1 或 0 的常量,并且取决于所使用的基础类型。
【讨论】: