Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql mariadb 10 uncompress()返回blob而不是字符串_Mysql_Mariadb - Fatal编程技术网

Mysql mariadb 10 uncompress()返回blob而不是字符串

Mysql mariadb 10 uncompress()返回blob而不是字符串,mysql,mariadb,Mysql,Mariadb,根据mysql和mariadb,如果输入字符串是使用compress()压缩的,uncompress()将返回一个字符串 示例中还说明: SELECT UNCOMPRESS(COMPRESS('a string')); +----------------------------------+ | UNCOMPRESS(COMPRESS('a string')) | +----------------------------------+ | a string

根据mysql和mariadb,如果输入字符串是使用compress()压缩的,uncompress()将返回一个字符串

示例中还说明:

SELECT UNCOMPRESS(COMPRESS('a string'));
+----------------------------------+
| UNCOMPRESS(COMPRESS('a string')) |  
+----------------------------------+
| a string                         |
+----------------------------------+
然而,在mysql workbench和navicat上,我只得到了一个blob。仅使用

SELECT CONVERT(UNCOMPRESS(COMPRESS('a string')) USING utf8);

返回原始字符串。我错在哪里?文档是错误的还是我只是误解了?

至少从MySQL 5.1开始,
UNCOMPRESS()
的结果类型一直是
LONG\u BLOB
,在此之前它是
VARBINARY


背景是
COMPRESS()
只压缩字符串内容,而不保留字符集或排序规则之类的元数据。因此,对于
UNCOMPRESS()
来说,将未压缩的数据作为二进制数据流返回是唯一安全的选择。将返回的二进制数据转换为特定的字符集和排序规则取决于用户,例如,将此信息带外存储在一个单独的列中,然后将其用作
CONVERT()。但愿我能朝那个方向想。