在我的创建表脚本中,我已将hasMultipleColors字段定义为BIT:
hasMultipleColors BIT NOT NULL,
运行INSERT时,不会对此字段或其他BIT字段引发警告,但是选择行将显示所有BIT值均为空白。
从命令行手动尝试更新这些记录会产生奇怪的效果-显示该记录已匹配并已更改(如果适用),但始终显示为空白。
服务器版本:5.5.24-0ubuntu0.12.04.1(Ubuntu)
mysql> update pumps set hasMultipleColors = 1 where id = 1; Query OK, 0 rows affected (0.00 sec) Rows matched: 1 Changed: 0 Warnings: 0 mysql> select hasMultipleColors from pumps where id = 1; +-------------------+ | hasMultipleColors | +-------------------+ | | +-------------------+ 1 row in set (0.00 sec) mysql> update pumps set hasMultipleColors = b'0' where id = 1; Query OK, 1 row affected (0.00 sec) Rows matched: 1 Changed: 1 Warnings: 0 mysql> select hasMultipleColors from pumps where id = 1; +-------------------+ | hasMultipleColors | +-------------------+ | | +-------------------+ 1 row in set (0.00 sec)
有什么想法吗?
您需要将位字段转换为整数。
mysql> select hasMultipleColors+0 from pumps where id = 1;
这是因为存在错误,请参见:http : //bugs.mysql.com/bug.php?id=43670。状态为:无法修复。