似乎我应该使用tinyint();但我不知道如何实施它?
问题是如果我需要在MySQL DB中有一个布尔字段并用PHP修改它的值,那么你的建议是什么
答案 0 :(得分:45)
是的,TINYINT(1)
是要走的路......你也可以使用BOOL
or BOOLEAN
作为同义词(所以它没有什么区别)。
0
评估为PHP false
,1
评估为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)
答案 4 :(得分:0)
我认为既然你真的想在mysql表字段上强制执行一个布尔(0,1)约束,那么最佳镜头是uning enum
CREATE TABLE table_name(
boolean_field_name ENUM('0', '1')
);