MySQL没有定义明确的布尔数据类型,而是选择为TINYINT(1)创建BOOL和BOOLEAN别名。为什么会这样?
答案 0 :(得分:5)
这是因为SQL规范在SQL:1999之前没有定义一个,并且没有强制执行。 MySQL只是为了允许关键字 - MSSQL,DB2和Oracle使用BIT和一些真/假常量来伪造它而领先于大部分包。
(基本上是出于同样的原因,虽然SQL规范声明它发音为“ess queue ell”,但我认识的每个人都只是说“续集”,因为我们很懒惰并且理解上下文。)
答案 1 :(得分:2)
如果我正确理解你的问题,那是因为Boolean values in MySql只是别名为1或0的常量,并且取决于所使用的基础类型。
答案 2 :(得分:1)
布尔数据类型只是映射到1位的小整数。您可以在此处找到更多信息:http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html