问题描述
在我的创建表脚本中,我已将hasMultipleColors字段定义为BIT:
From my create table script, I've defined the hasMultipleColors field as a BIT:
hasMultipleColors BIT NOT NULL,
运行INSERT时,不会对此字段或其他BIT字段引发警告,但是选择行将显示所有BIT值均为空白.
When running an INSERT, there are no warnings thrown for this or the other BIT fields, but selecting the rows shows that all BIT values are blank.
从命令行手动尝试更新这些记录会产生奇怪的效果-显示该记录已匹配并已更改(如果适用),但始终显示为空白.
Manually trying to UPDATE these records from the command line gives odd effect - shows that the record was match and changed (if appropriate), but still always shows blank.
服务器版本:5.5.24-0ubuntu0.12.04.1(Ubuntu)
Server version: 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)
有什么想法吗?
推荐答案
您需要将位字段转换为整数.
You need to cast the bit field to an integer.
mysql> select hasMultipleColors+0 from pumps where id = 1;
这是因为存在错误,请参见: http://bugs.mysql.com /bug.php?id=43670 .状态为:无法修复.
This is because of a bug, see: http://bugs.mysql.com/bug.php?id=43670. The status says: Won't fix.
这篇关于MySQL始终将BIT值返回为空白的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!