关于c#:MySQL中存储布尔值的数据类型是什么?

What is the datatype to store boolean value in MySQL?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
Which MySQL Datatype to use for storing boolean values?

我是一个.NET程序员,一生中第一次使用MySQL数据库。

我想存储布尔值,mysql有BIT,但是这个数据类型的.NET转换是UINT64

还有另一个数据类型TINYINT(1),它的.NET等价物是System.Boolean,这将满足我的目的。

但是为什么我要用TINYINT(1)代替BIT,它可以存储123、22这样的值,而且它比BIT还需要更多的空间(我猜)?使用它可能是合法的,但我不认为它是合乎礼仪的。

有人能帮我澄清一下我的疑问吗?


mysql有bool和boolean,但它们是tinyint(1)的同义词。零值被认为是错误的。非零值被认为是真的。我想MySQL有人考虑过了,认为Tinyint(1)是首选的方式。我一直都是自己用的。

在这个类似的问题中还有更多的信息:在MySQL中bit和tinyint有什么区别?


BIT不像你想象的那样工作,它通常用于存储位域,BIT(M)大约占用(M+7)/8字节(整数算术)的存储空间。无论如何,使用BIT(1)需要一个完整的字节,与TINYINT相同,所以不要担心。

如果您感兴趣,可以在这里找到各种类型的存储需求。


According to the MySQL manual you can use bool and boolean which are at the moment aliases of tinyint(1):

参考:用于存储布尔值的mysql数据类型

类似于MS SQL的位数据类型:

1
0 = False    1 = True