【发布时间】:2010-09-22 07:53:36
【问题描述】:
由于 MySQL 似乎没有任何“布尔”数据类型,您会“滥用”哪种数据类型在 MySQL 中存储真/假信息?
尤其是在从/向 PHP 脚本写入和读取的上下文中。
随着时间的推移,我已经使用并看到了几种方法:
- tinyint、varchar 字段包含值 0/1,
- varchar 字段包含字符串 '0'/'1' 或 'true'/'false'
- 最后枚举包含“true”/“false”两个选项的字段。
以上都不是最佳的。我更喜欢 tinyint 0/1 变体,因为 PHP 中的自动类型转换给我的布尔值相当简单。
那么您使用哪种数据类型?有没有为我忽略的布尔值设计的类型?您看到使用一种或另一种类型有什么优点/缺点吗?
【问题讨论】:
-
任何正在阅读此问题旧答案的人都需要了解 MySQL 在版本 5 中添加了位数据类型。尽可能使用该信息。 dev.mysql.com/doc/refman/5.0/en/bit-type.html
-
对于当前版本的 MYSQL 布尔类型可用-dev.mysql.com/doc/refman/5.5/en/numeric-type-overview.html 勾选此项。根据那个值零被认为是假的
-
bit(1)在 Excel 中导入有点**。切换到tinyint(1)有效。 -
现在我们在 5 年后有了布尔值
标签: mysql boolean sqldatatypes