我正在使用MySQL Workbench CE 5.2.30 CE / Rev 6790。执行以下语句时:
SELECT OLD_PASSWORD("test")
我只返回一个漂亮的BLOB
图标,我需要左键单击以选择单元格,右键单击并选择“在查看器中打开值”并选择“文本”选项卡。
使用与phpMyAdmin相同的内容,我直接返回OLD_PASSWORD
调用的值。这只是一个例子,但有没有办法在输出中直接看到这样的结果?
答案 0 :(得分:95)
简而言之:
在MySQL Workbench 6.0 +
中使用此设置,您将能够连接字段而不会获得blob。
我认为这适用于版本5.2.22及更高版本,并且是this MySQL bug的结果。
免责声明:我不知道此设置的缺点是什么 - 也许当您选择BINARY
/ VARBINARY
值时,您会将其视为纯文本,这可能会产生误导和/或或者,如果它们足够大,它可能会阻碍性能?
答案 1 :(得分:24)
执行三个步骤:
转到“WorkBench首选项” - >在“查询结果”下选择“SQL编辑器”:选中“将BINARY / VARBINARY视为非二进制字符串”
重启MySQL WorkBench。
现在选择SELECT SUBSTRING(BLOB<COLUMN_NAME>,1,2500) FROM <Table_name>;
答案 2 :(得分:22)
我不确定这是否能回答这个问题,但如果您右键单击该字段中的“blob”图标(查看表格时),则可以选择“在编辑器中打开值”。其中一个选项卡允许您查看blob。这是ver。 5.2.34
答案 3 :(得分:12)
投射工作,但这是一个痛苦,所以我建议使用spioter的方法,除非你使用了很多真正的blob数据。
SELECT CAST(OLD_PASSWORD("test") AS CHAR)
您也可以像其他类型一样进行转换,甚至限制大小,但大多数时候我只使用CHAR: http://dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast
答案 4 :(得分:5)
似乎不可能我害怕,它被列为工作台中的错误: http://bugs.mysql.com/bug.php?id=50692 虽然这会非常有用!
答案 5 :(得分:4)
有同样的问题,根据the MySQL documentation,你可以选择一个BLOB的子串:
SELECT id, SUBSTRING(comment,1,2000) FROM t
HTH,glissi
答案 6 :(得分:3)
工作台6.3
关注高分答案,然后使用SELECT SUBSTRING(UNCOMPRESS(<COLUMN_NAME>),1,2500) FROM <Table_name>;
(简而言之:
1.转到编辑&gt;首
2.选择SQL编辑器
3.在SQL Execution下,选中Treat BINARY / VARBINARY作为非二进制字符串
4.重新启动MySQL Workbench(不会提示您或告知此要求)。)
然后
SELECT CAST(UNCOMPRESS(<COLUMN_NAME>) AS CHAR) FROM <Table_name>;
或
UNCOMPRESS(<COLUMN_NAME>)
如果你只是放{{1}},你可以右键单击blob并点击&#34;在编辑器中打开值&#34;。
答案 7 :(得分:3)
我将其他一些帖子拼凑在一起,因为工作台的“首选项”修复程序对我不起作用。 (WB 6.3)
SELECT CAST(`column` AS CHAR(10000) CHARACTER SET utf8) FROM `table`;
答案 8 :(得分:2)
你可以做的事情很少
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)
正如它在博客上所说的那样
答案 9 :(得分:1)
注意:如果BLOB是一个任意字节序列,则前面的答案不是特别有用。例如BINARY(16)用于存储128位GUID或md5校验和。
在那种情况下,当前没有编辑者的偏好-尽管我有submitted a feature request now-请参阅该请求以获取更详细的说明。
[直到/除非实现了功能请求],解决方案是查询git stash pop
中的HEX
函数。
一种替代方法是使用 phpMyAdmin 代替MySQL Workbench-默认情况下显示十六进制。
答案 10 :(得分:0)
select CONVERT((column_name) USING utf8) FROM table;
就我而言,Workbench无法正常工作。所以我使用上述解决方案将blob数据显示为文本。
答案 11 :(得分:-3)
SELECT *,CONVERT(UNCOMPRESS(column)USING“utf8”)AS列FROM table_name