首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mariadb 10解压缩()返回blob而不是字符串

mariadb 10解压缩()返回blob而不是字符串
EN

Stack Overflow用户
提问于 2014-11-10 22:22:49
回答 1查看 1.1K关注 0票数 3

根据mysql和mariadb的说法,如果使用文档 ()压缩了输入字符串,那么解压缩()将返回一个字符串。

在例子中也有说明:

代码语言:javascript
复制
SELECT UNCOMPRESS(COMPRESS('a string'));
+----------------------------------+
| UNCOMPRESS(COMPRESS('a string')) |  
+----------------------------------+
| a string                         |
+----------------------------------+

然而,在mysql工作台和navicat上,结果只有一个blob。仅用

代码语言:javascript
复制
SELECT CONVERT(UNCOMPRESS(COMPRESS('a string')) USING utf8);

返回原始字符串。我哪里错了?医生是错的还是我只是误解了这里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-26 11:34:39

UNCOMPRESS()的结果类型自MySQL 5.1以来一直是LONG_BLOB,在此之前是VARBINARY

背景是,COMPRESS()只压缩字符串内容,而不保存元数据(如字符集或排序规则)。因此,对于UNCOMPRESS()来说,将未压缩的数据作为二进制数据流返回是唯一安全的选项。将返回的二进制数据转换为特定的字符集和排序规则由用户决定,例如,将这些信息存储在单独的列中,然后将其作为CONVERT()的参数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26854111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档