35

我一直发现 MySQL Workbench 将查询结果显示为BLOB. 例如: SELECT INET_NTOA(167773449)-->BLOB

如果我选择“查看值”,我可以确定文本值是“10.0.5.9”,但是当我选择多行并想看一眼内容时,这很烦人。

有没有办法解决这个问题,还是工具的限制?

4

2 回答 2

70

背景: 在结果中返回二进制字符串值(BINARY/VARBINARY 类型)时会出现此问题。二进制字符串包含零字节,出于某种原因,显然是安全的,默认情况下没有显示。有关二进制字符串的更多详细信息,请参见此处

即使在报告的示例SELECT INET_NTOA(167773449)中,该函数也返回二进制字符串。检查以供参考。

解决方案: 自 MySQL Workbench v5.2.22 起,可以通过首选项设置是否显示或隐藏这些值。

  1. 在 MySQL Workbench 中,转到:“Edit -> Preferences... -> SQL Queries“Edit -> Preferences... -> SQL Editor -> SQL Execution(取决于您拥有的 Workbench 版本)。
  2. 选中“将 BINARY/VARBINARY 视为非二进制字符串”选项以显示实际值。

参考: 原始问题已报告并在此处修复。

于 2012-12-18T01:42:56.867 回答
26

您可以做的是将您的 BLOB 类型转换为字符串。这只会让您在浏览您的选择语句时浏览一下您的 BLOB 类型中的内容。

SELECT CAST(`blob_column_name` AS CHAR(10000) CHARACTER SET utf8) FROM `table_name`;
于 2017-05-07T22:36:46.077 回答