programing

문자열 대신 mariadb 10 uncompress() return blob

javaba 2022. 10. 7. 23:12
반응형

문자열 대신 mariadb 10 uncompress() return blob

mysql 및 mariadb docs uncompress()에 따르면 입력 문자열이 compress()를 사용하여 압축된 경우 문자열을 반환합니다.

또, 예에 기재되어 있습니다.

SELECT UNCOMPRESS(COMPRESS('a string'));
+----------------------------------+
| UNCOMPRESS(COMPRESS('a string')) |  
+----------------------------------+
| a string                         |
+----------------------------------+

그러나 mysql workbench와 navicat에서는 결과적으로 blob만 발생합니다.사용만

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

원래 문자열을 반환합니다.어디가 틀렸나요?문서가 잘못된 건가요? 아니면 제가 잘못 해석한 건가요?

의 결과 유형UNCOMPRESS()다녀온 적이 있다.LONG_BLOB적어도 MySQL 5.1 이전부터VARBINARY.

배경은 입니다.COMPRESS()문자열 내용만 압축할 뿐 문자 집합이나 대조와 같은 메타 데이터는 보존하지 않습니다.그러니까UNCOMPRESS()비압축 데이터를 바이너리 데이터 스트림으로 반환하는 것이 유일한 안전한 옵션입니다.반환된 바이너리 데이터를 특정 문자 집합 및 대조로 변환하는 것은 사용자에게 달려 있습니다.예를 들어, 이 정보를 다른 열에 저장하고 이를 인수로 사용합니다.CONVERT()이따가.

언급URL : https://stackoverflow.com/questions/26854111/mariadb-10-uncompress-return-blob-instead-of-string

반응형