COMPRESS(string_to_compress)

COMPRESS(string_to_compress)

ストリングを圧縮し、結果をバイナリ ストリングとして戻します。この関数では、MySQL が zlib のような圧縮ライブラリとコンパイルされている必要があります。その条件が満たされない場合、その戻り値は常に 0 になります。圧縮されたストリングは、UNCOMPRESS() によって非圧縮することができます。

mysql> SELECT LENGTH(COMPRESS(REPEAT('a',1000)));
        -> 21
mysql> SELECT LENGTH(COMPRESS(''));
        -> 0
mysql> SELECT LENGTH(COMPRESS('a'));
        -> 13
mysql> SELECT LENGTH(COMPRESS(REPEAT('a',16)));
        -> 15

圧縮されたストリングの内容は次の方法で格納されます :

  • 空のストリングは空のストリングとして格納。

  • 空でないストリングは、圧縮されたストリングの後に、4 バイト長の非圧縮ストリングとして ( 下位バイトから ) 格納されます。ストリングの最後にスペースがある場合は、最後のスペースが除かれることがないよう、‘.’ 文字が追加されます。結果は CHAR または VARCHAR カラムに格納されます。( CHAR または VARCHAR を使用して、圧縮されたストリングを保存するのはお薦めできません。BLOB カラムをご使用ください。 )