一尘不染

MySQL始终将BIT值返回为空白

mysql

在我的创建表脚本中,我已将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)

有什么想法吗?


阅读 359

收藏
2020-05-17

共1个答案

一尘不染

您需要将位字段转换为整数。

mysql> select hasMultipleColors+0 from pumps where id = 1;

这是因为存在错误,请参见:http :
//bugs.mysql.com/bug.php?id=43670。状态为:无法修复。

2020-05-17