How to store boolean datatype in MySQL?
哪个数据类型用于在MySQL中存储
尤其是用PHP脚本编写和阅读时。
随着时间的推移,我使用并看到了几种方法:
1
2
3 tinyint, varchar fields containing the values 0/1,
varchar fields containing the strings '0'/'1' or 'true'/'false'
and finally enum Fields containing the two options 'true'/'false'.
似乎没有一个是最佳的,我更喜欢
那么,是否有一个为布尔值设计的类型我忽略了?
您是否看到使用一种或另一种类型有什么优点/缺点?
有很多选择。
为了与许多不同的MySQL客户端、客户端库、ORM等兼容,我们已经解决了
1 | col TINYINT(1) UNSIGNED COMMENT 'boolean, ...' |
除了Boolean之外,我们不使用
注意,
我们将空值作为空值处理,将
我们没有遇到任何无法处理整数类型的客户端。
对于mysql,使用类型boolean not null类型喜欢
1 | ALTER TABLE `products` ADD `test` BOOLEAN NOT NULL; |
如果布尔值不起作用,则使用类似int的tinyint(1)不为空例如,
重要的tinyint(1)值必须在tinyint内。
对于MySQL5.0.3及更高版本,可以使用bit或tinyint。
这里有一个更详细的答案