如何向MySQL添加布尔字段?

时间:2010-10-14 07:34:06

标签: php mysql boolean

似乎我应该使用tinyint();但我不知道如何实施它?

问题是如果我需要在MySQL DB中有一个布尔字段并用PHP修改它的值,那么你的建议是什么

5 个答案:

答案 0 :(得分:45)

是的,TINYINT(1)是要走的路......你也可以使用BOOL or BOOLEAN作为同义词(所以它没有什么区别)。

0评估为PHP false1评估为true(实际上,0以外的任何其他数字评估为true,但通常使用1

答案 1 :(得分:4)

我不喜欢bool,BIT,TINYINT(1)。因为它们实际上都不是布尔值。您可以查看以下链接以了解“为什么”:

http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html

我最好使用:ENUM('false','true')not null - 作为数据类型。您可以从PHP传递'true'或'false'(作为字符串)。并且它只需要1个字节来存储它!

答案 2 :(得分:2)

一般的解决方案是tinyint(1),这是正确的。你可以简单地使用BOOL:

CREATE TABLE example (
         flag BOOL
       );

答案 3 :(得分:2)

你可以选择tinyint(1)或bit

将0或1插入此字段

看到这篇差异的帖子:

Tinyint vs Bit

答案 4 :(得分:0)

我认为既然你真的想在mysql表字段上强制执行一个布尔(0,1)约束,那么最佳镜头是uning enum

CREATE TABLE table_name(
    boolean_field_name ENUM('0', '1')
);