我正在使用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+中
在旧版本的 MySQL Workbench 中
有了这个设置,您就能够连接字段而不会得到二进制大对象。
我认为这适用于5.2.22版本及其后续版本,并且是由this MySQL bug引起的。
免责声明:我不知道这个设置的缺点是什么 - 也许当您选择BINARY
/VARBINARY
值时,您会将其视为纯文本,这可能会误导您和/或者如果它们足够大,可能会影响性能?
我不确定这个回答是否正确,但是如果你在查看表格时右键点击字段中的“blob”图标,会出现一个“在编辑器中打开值”的选项。其中一个选项卡可以让你查看该blob。这个功能在5.2.34版本中可用。
请执行以下三个步骤:
进入“工作台首选项”--> 在“查询结果”下选择“SQL编辑器”: 选中“将BINARY/VARBINARY作为非二进制字符串处理”
重新启动MySQL Workbench。
现在选择 SELECT SUBSTRING(<BLOB_COLUMN_NAME>,1,2500) FROM <Table_name>;
BLOB <COLUMN_NAME>
,而是 <BLOB_COLUMN_NAME>
。 - QkiZ强制类型转换是可行的,但会比较麻烦。所以我建议除非你在使用大量真正的 Blob 数据,否则使用 spioter 的方法。
SELECT CAST(OLD_PASSWORD("test") AS CHAR)
你还可以将其转换为其他类型,甚至限制其大小,但大多数情况下我只使用CHAR:
http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_castselect CONVERT((column_name) USING utf8) FROM table;
在我的情况下,Workbench 不起作用,因此我使用上述解决方案将 blob 数据显示为文本。
很抱歉,似乎不可能做到这一点。它被列为Workbench中的一个错误: http://bugs.mysql.com/bug.php?id=50692 尽管如此,这将非常有用!
我把其他帖子的一些内容拼凑在一起,因为工作台“首选项”修复对我没有用。(WB 6.3)
SELECT CAST(`column` AS CHAR(10000) CHARACTER SET utf8) FROM `table`;
工作台 6.3
按照得分最高的答案,然后使用 UNCOMPRESS()
(简单来说:
1. 转到编辑 > 首选项
2. 选择 SQL 编辑器
3. 在 SQL 执行下,勾选将二进制/变长二进制视为非二进制字符字符串
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 并选择 "在编辑器中打开值"。UNCOMPRESS
。虽然我从未使用过它,但根据MySQL文档,只有在使用COMPRESS
创建二进制值时才适用: “如果参数不是压缩值,则结果为NULL。” - ToolmakerSteveHEX
函数:SELECT HEX(mybinarycolumn) FROM mytable
。
HEX
函数:SELECT HEX(mybinarycolumn) FROM mytable
。(另一种选择是使用phpMyAdmin而不是MySQL Workbench-在那里,默认显示十六进制。) - ToolmakerSteve