什么是mysql的最佳布尔值?

时间:2011-10-25 21:33:47

标签: mysql

从选择复选框的ajax查询中从mysql返回的值存在问题。但我能让它工作的唯一方法是将mysql中的值作为 NULL 。但是0或1每次都会返回它。在mysql中,我将它设置为tinyint(1)。

5 个答案:

答案 0 :(得分:4)

在MySQL boolean中是tinyint(1)的别名。我建议使用boolean MySQL编写者出于某种原因做事。我确信他们有充分的理由选择tinyint而不是bit

您永远不会获得比1个字节更小的存储要求。

确保对1

进行检查
if $row['bool_field'] == 1 {check that box}
else {uncheck that box}

答案 1 :(得分:0)

尝试使用bit(1)作为数据类型 http://dev.mysql.com/doc/refman/5.0/en/bit-field-values.html

答案 2 :(得分:0)

我想你想要Boolean value - 毕竟这是他们的设计目标。无论哪种方式,它都应该被定义为NOT NULL;大多数布尔逻辑情况都会有不必要的边缘情况,除非你这样做(Ternary logic放在一边!)。

有一个猜测,也许你的视图代码填充复选框是检查是否存在一个键,而不是该值为False(或0),或者数据库查询正在为这种情况不正确地进行连接。很难说没有更详细的信息。

答案 3 :(得分:0)

使用布尔值。使用bit(1)是错误的方法。

尽可能read here,分配为bit(1)的字段也可以是11111111,而boolean / tinyint字段可以处理的数据要多得多。

答案 4 :(得分:0)

MySQL对SQL BOOL / BOOLEAN使用TINYINT(1)。因此,我将根据标准SQL使用BOOLEAN。enter link description here