MySQL中存储布尔值的数据类型是什么?
MySQL中存储布尔值的数据类型是什么?
此问题已经有答案了:
可能是重复的问题:
我是.NET程序员,第一次使用MySQL数据库。
我想要存储布尔值,MySQL有BIT
,但这个数据类型的.NET转换是UINT64
。
还有另一个数据类型TINYINT(1)
,它的.NET等效类型是System.Boolean
,它可以满足我的要求。
但为什么我会使用TINYINT(1)
(可以存储值例如123, 22),而不是BIT
,它还将占用比BIT
更多的空间(我猜)?使用它可能是合法的,但我认为这不是道德的。
有人能帮助我澄清我的疑问吗?
admin 更改状态以发布 2023年5月23日
MySQL 有 BOOL 和 BOOLEAN,但它们是 TINYINT(1) 的同义词。零被视为 false,非零值被视为 true。我猜 MySQL 的某个人考虑了一下,并决定 TINYINT(1) 是首选。我自己一直都是这样使用的。这个类似的问题中还有一些更多的信息: What is the difference between BIT and TINYINT in MySQL?