ストリングを圧縮し、結果をバイナリ ストリングとして戻します。この関数では、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
カラムをご使用ください。 )