看来我应该使用tinyint();但我不知道如何实施它?
问题是如果我需要在MySQL DB中有一个布尔字段并用PHP修改它的值,那么你的建议是什么
是的, TINYINT(1) 是要走的路......你也可以使用BOOL or BOOLEAN这是同义词(所以它没有什么区别) .
TINYINT(1)
0 在PHP中评估为 false , 1 评估为 true (实际上,除 0 之外的任何其他数字的评估结果为 true ,但通常使用 1 ) .
0
false
1
true
我不喜欢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个字节即可存储!
你是正确的,一般的解决方案是 tinyint(1) . 你可以简单地使用BOOL:
tinyint(1)
CREATE TABLE example ( flag BOOL );
你有tinyint(1)或bit的选项
将0或1插入此字段
看到这篇差异的帖子:
Tinyint vs Bit
我认为既然你真的想在mysql表字段上强制执行一个布尔(0,1)约束,那么最佳镜头是uning enum
CREATE TABLE table_name( boolean_field_name ENUM('0', '1') );
5 回答
是的,
TINYINT(1)
是要走的路......你也可以使用BOOL or BOOLEAN这是同义词(所以它没有什么区别) .0
在PHP中评估为false
,1
评估为true
(实际上,除0
之外的任何其他数字的评估结果为true
,但通常使用1
) .我不喜欢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个字节即可存储!
你是正确的,一般的解决方案是
tinyint(1)
. 你可以简单地使用BOOL:你有tinyint(1)或bit的选项
将0或1插入此字段
看到这篇差异的帖子:
Tinyint vs Bit
我认为既然你真的想在mysql表字段上强制执行一个布尔(0,1)约束,那么最佳镜头是uning enum