我正在使用MySQL Workbench CE 5.2.30 CE / REV 6790。执行以下语句时:

SELECT OLD_PASSWORD("test")

我只得到一个很好的 BLOB 图标,我需要左键单击以选择单元格,右键单击并选择“在查看器中的打开值”,然后选择“文本”选项卡。

与phpmyadmin一起使用,我直接获得了 OLD_PASSWORD 称呼。这只是一个示例,但是有没有办法直接在输出中看到此类结果?

有帮助吗?

解决方案

简而言之:

  1. 编辑 > 优先
  2. 选择 SQL编辑器
  3. 在下面 SQL执行, , 查看 将二进制/varbinary视为非二进制字符串
  4. 重新启动MySQL Workbench(不会提示或了解此要求)。

在MySQL Workbench 6.0+

  1. 编辑 > 优先
  2. 选择 SQL查询
  3. 在下面 查询结果, , 查看 将二进制/varbinary视为非二进制字符串
  4. 重新启动MySQL Workbench并不是强制性的(不会提示或了解此要求)。

在此设置中,您将能够在不获得斑点的情况下连接场。

我认为这适用于版本5.2.22及以后,是 这个mysql错误.

免责声明:我不知道此设置的缺点 - 也许当您选择时 BINARY/VARBINARY 您会将其视为纯文本,可能会引起误导和/或可能会阻碍性能,如果它们足够大?

其他提示

执行三个步骤:

  1. 转到“ WorkBench首选项” - >选择“查询结果”下的“ SQL Editor”:检查“将二进制/varbinary视为非二进制字符串”

  2. 重新启动MySQL Workbench。

  3. 现在选择 SELECT SUBSTRING(BLOB<COLUMN_NAME>,1,2500) FROM <Table_name>;

我不确定这是否回答问题,但是如果您右键单击字段中的“ blob”图标(查看表格时),则可以选择“在编辑器中打开值”。其中一个标签使您可以查看斑点。这是在ver中。 5.2.34

铸造有效,但这是一种痛苦,因此我建议使用Spioter的方法,除非您使用了许多真正的BLOB数据。

SELECT CAST(OLD_PASSWORD("test") AS CHAR)

您也可以用作其他类型,甚至可以限制大小,但是大多数时候我只使用char:http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast

恐怕似乎不可能,它被列为Workbench中的错误:http://bugs.mysql.com/bug.php?id=50692不过,这将非常有用!

有同样的问题 MySQL文档, ,您可以选择一个斑点的子字符串:

SELECT id, SUBSTRING(comment,1,2000) FROM t

Hth,Glissi

工作台6.3
跟随高分答案,然后使用 UNCOMPRESS()

(简而言之:
1.转到编辑>首选项
2.选择SQL编辑器
3.在SQL执行下,检查待遇二进制/varbinary作为非二进制字符串
4.重新启动MySQL Workbench(不会提示或了解此要求)。)

然后

SELECT SUBSTRING(UNCOMPRESS(<COLUMN_NAME>),1,2500) FROM <Table_name>;

或者

SELECT CAST(UNCOMPRESS(<COLUMN_NAME>) AS CHAR) FROM <Table_name>;

如果你只是放 UNCOMPRESS(<COLUMN_NAME>) 您可以右键单击blob,然后单击“编辑器中的“打开值”。

我将其他一些帖子拼凑在一起,因为工作台的“偏好”修复程序对我不起作用。 (WB 6.3)

SELECT CAST(`column` AS CHAR(10000) CHARACTER SET utf8) FROM `table`;

您几乎可以做的事情

SELECT GROUP_CONCAT(CAST(name AS CHAR))
FROM product
WHERE  id   IN (12345,12346,12347)

如果您想按查询订购

SELECT GROUP_CONCAT(name ORDER BY name))
FROM product
WHERE id   IN (12345,12346,12347)

正如它在此博客上所说的

http://www.kdecom.com/mysql-group-concat-blob-bug-solved/

注意:如果BLOB是任意字节的序列,这里的先前答案并不特别有用;例如,二进制(16)存储128位GUID或MD5校验和。

在这种情况下,当前没有编辑器的偏好 - 尽管我有 立即提交功能请求 - 请参阅该请求以提供更多详细的说明。

直到/除非实现该功能请求],解决方案是 HEX 查询中的功能: SELECT HEX(mybinarycolumn) FROM mytable.


另一种方法是使用 phpmyadmin 而不是MySQL Workbench - 默认情况下显示了十六进制。

select CONVERT((column_name) USING utf8) FROM table;

就我而言,工作台不起作用。因此,我使用上述解决方案将BLOB数据显示为文本。

选择 *,convert(uncompress(列)使用“ utf8”)作为table_name的列

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top