我正在使用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
调用的值。这只是一个示例,但是有没有办法在输出中直接看到这样的结果?
HEX
查询中的函数:SELECT HEX(mybinarycolumn) FROM mytable
。(一种替代方法是使用phpMyAdmin代替MySQL Workbench-默认情况下显示十六进制。)
Answers:
简而言之:
在MySQL Workbench 6.0+中
使用此设置,您将可以串联字段而不会引起斑点。
我认为这适用于5.2.22及更高版本,并且是此MySQL错误的结果。
免责声明:我不知道此设置的缺点-也许当您选择BINARY
/VARBINARY
值时,您会看到它是纯文本,这可能会引起误解,并且/或者如果它们足够大,则会妨碍性能?
我不确定这是否能回答问题,但是如果您右键单击字段中的“ blob”图标(查看表时),则可以使用“在编辑器中打开值”选项。其中一个标签可让您查看Blob。这是事实。5.2.34
Text
。该选项卡以文本格式显示正确的值。:)
转换有效,但这很痛苦,因此除非您使用大量真实的Blob数据,否则我建议使用spioter方法。
SELECT CAST(OLD_PASSWORD("test") AS CHAR)
您还可以将其转换为其他类型,甚至限制大小,但是大多数时候我只使用CHAR:http : //dev.mysql.com/doc/refman/5.5/en/cast-functions.html#function_cast
恐怕似乎不太可能,它被列为工作台中的错误:http : //bugs.mysql.com/bug.php? id= 50692 但这将非常有用!
工作台6.3
遵循高分答案,然后使用UNCOMPRESS()
(简而言之:
1.转到“编辑”>“首选项”
。2.选择“ SQL编辑器”
3.在“ SQL执行”下,选中“将BINARY / 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,然后单击“在编辑器中打开值”。
UNCOMPRESS
合适。根据MySQL文档,虽然我从未使用过它,但仅当COMPRESS
用于创建BINARY值时才合适:“如果参数不是压缩值,则结果为NULL。”
select CONVERT((column_name) USING utf8) FROM table;
就我而言,Workbench不起作用。所以我用上述解决方案将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)
正如它在这个博客上所说的
CSTobey
并mbunch
已表明,BLOB字段可以CAST
.. AS CHAR
。我认为您在证明CAST对于使GROUP_CONCAT
工作正常有用吗?不幸的是,链接断开了。顺便说一句,您的第二个代码示例有问题...