我正在使用 MySQL Workbench CE 5.2.30 CE / Rev 6790 。执行以下语句时:
SELECT OLD_PASSWORD("test")
我只得到一个漂亮的BLOB
图标,我需要左键单击选择单元格,右键单击并选择“在查看器中打开值”并选择“文本”选项卡。
对 phpMyAdmin 使用相同的方法,我可以直接返回OLD_PASSWORD
调用的值。这只是一个例子,但有没有办法直接在输出中看到这样的结果?
我正在使用 MySQL Workbench CE 5.2.30 CE / Rev 6790 。执行以下语句时:
SELECT OLD_PASSWORD("test")
我只得到一个漂亮的BLOB
图标,我需要左键单击选择单元格,右键单击并选择“在查看器中打开值”并选择“文本”选项卡。
对 phpMyAdmin 使用相同的方法,我可以直接返回OLD_PASSWORD
调用的值。这只是一个例子,但有没有办法直接在输出中看到这样的结果?
简而言之:
在 MySQL Workbench 6.0+ 中
使用此设置,您将能够连接字段而不会获得 blob。
我认为这适用于版本 5.2.22 及更高版本,并且是这个 MySQL 错误的结果。
免责声明:我不知道此设置的缺点是什么-也许当您选择BINARY
/VARBINARY
值时,您会将其视为纯文本,这可能会产生误导和/或如果它们足够大,可能会妨碍性能?
我不确定这是否回答了问题,但是如果您右键单击字段中的“blob”图标(查看表格时),则可以选择“在编辑器中打开值”。其中一个选项卡可让您查看 blob。这是在版本。5.2.34
执行三个步骤:
转到“WorkBench Preferences”-> 在“Query Results”下选择“SQL Editor”:勾选“Treat BINARY/VARBINARY as nonbinary string”
重新启动 MySQL 工作台。
现在选择SELECT SUBSTRING(<BLOB_COLUMN_NAME>,1,2500) FROM <Table_name>;
铸造工作,但它很痛苦,所以我建议使用 spioter 的方法,除非你使用大量真正的 blob 数据。
SELECT CAST(OLD_PASSWORD("test") AS CHAR)
您也可以转换为其他类型,甚至限制大小,但大多数时候我只使用 CHAR: http ://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast
select CONVERT((column_name) USING utf8) FROM table;
就我而言,Workbench 不起作用。所以我使用上述解决方案将 blob 数据显示为文本。
恐怕似乎不可能,它被列为工作台中的一个错误: http ://bugs.mysql.com/bug.php?id=50692 不过它会非常有用!
我将其他一些帖子拼凑在一起,因为工作台“首选项”修复对我不起作用。(世界银行 6.3)
SELECT CAST(`column` AS CHAR(10000) CHARACTER SET utf8) FROM `table`;
工作台 6.3
遵循高分答案然后使用UNCOMPRESS()
(简而言之:
1. 转到 Edit > Preferences
2. 选择 SQL Editor
3. 在 SQL Execution 下,选中 Treat BINARY/VARBINARY as nonbinary string
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并单击“在编辑器中打开值”。
你可以做的事情很少
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)
正如它在这个博客上所说
注意:如果 BLOB 是任意字节序列,那么前面的答案并不是特别有用;例如 BINARY(16) 存储 128 位 GUID 或 md5 校验和。
在这种情况下,目前没有编辑器偏好——尽管我现在已经提交了一个功能请求——请参阅该请求以获得更详细的解释。
[直到/除非实现该功能请求],解决方案是HEX
查询中的功能:SELECT HEX(mybinarycolumn) FROM mytable
.
另一种方法是使用phpMyAdmin而不是 MySQL Workbench - 默认情况下显示十六进制。
SELECT *, CONVERT( UNCOMPRESS(column) USING "utf8" ) AS column FROM table_name