my_table包含enabled字段,其定义为:enabled BIT NOT NULL DEFAULT 0.

此表有多行enabled = b'0',多行enabled = b'1'.

然而,这两方面:

SELECT * from my_table WHERE enabled = b'0';

这是:

SELECT * from my_table WHERE enabled = b'1';

enabled栏中显示空白:

+----+---------+
| id | enabled |
+----+---------+
|  1 |         |
|  2 |         |
+----+---------+

为什么?我怎样才能看到enabled字段的值?


$ mysql --version
mysql  Ver 14.14 Distrib 5.1.63, for debian-linux-gnu (x86_64) using readline 6.1

推荐答案

在终端中看不到它的原因是位值是不可打印的字符.

让我们插入以下值:

INSERT INTO `my_table` (`ID`, `enabled`)
VALUES (1,b'1'),(2,b'0');

然后 Select 要归档的文件:

mysql> SELECT * FROM my_table INTO OUTFILE '/tmp/my_table.txt' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

首先,让我们以纯文本形式查看我们的文件:

"1"和"

然后在hex视图中:

22 31 22 2C 22 01 22 0A 22 32 22 2C 22 00 22 0A

要查看这些值,只需在SELECT中输入CAST:

SELECT id, CAST(enabled AS UNSIGNED) AS enabled FROM my_table

这将产生以下输出:

+----+---------+
| id | enabled |
+----+---------+
|  1 |       1 |
|  2 |       0 |
+----+---------+
2 rows in set (0.00 sec)

Mysql相关问答推荐

试图加快查询速度-没有使用索引?

如何重新采样SQL数据库

正在获取MySQL死锁,因为这个查询需要很长时间.

如何让Docker MySQL使用Unicode(utf-8)和初始化脚本?

为什么我安装MySQL时不能使用3306端口?

数组上的MySQL、JSON_CONTAINS用法

返回包含某一列的分组最大值的行,说明列中的重复值

使用字符串文字与使用日期文字时的SQL行为

Mysql如何分行分词

如何使用减号运算符编写 sql 查询以返回缺少相应值的行?

如何 Select 具有最新的 2 个日期字段的行?

MySQL 1292 截断不正确的日期时间值:'2020-09-11T08:32-50Z'

使用数据表的直方图(SQL 查询)

如何在mysql select查询中获取两个日期之间的日期列表

mysql 按日期 Select 总和组

mysql中float(2,2)和float()的区别

MySQL Partitioning / Sharding / Splitting - 走哪条路?

使用 mysql 处理非常大的数据

如何从两个不同的日期获得年份差异?

表被指定了两次,既作为更新的目标,又作为 mysql 中数据的单独源