MySQL COMPRESS() function

COMPRESS() function

MySQL COMPRESS() function compress a string and returns the result as a binary string.

Nonempty strings are stored as a four-byte length of the uncompressed string (low byte first), followed by the compressed string. If the string ends with space, an extra "." character is added to avoid problems with end space trimming.

Empty strings are stored as empty strings.




Name Description
string_to_compress A string which is to be compressed.

Syntax Diagram:

MySQL COMPRESS() Function - Syntax Diagram

MySQL Version: 5.6





The above MySQL statement will compress the string text and also returns the length of the string after compression.

Sample Output:

mysql> SELECT COMPRESS('text'),LENGTH(COMPRESS('text'));
| COMPRESS('text') | LENGTH(COMPRESS('text')) |
|    xœ+I­( gÆ |                       16 | 
1 row in set (0.03 sec)

PHP script:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; 
charset=iso-8859-1" />
<title>example-compress - php mysql examples | w3resource</title>
echo "<h2>Compressing the text 'text' and returning the 
result as a binary string  : </h2>";
echo "<table border='1' style='border-collapse: collapse;
border-color: silver;'>";
echo "<tr style='font-weight: bold;'>";
echo "<td width='100' align='center'>COMPRESS('text')</td><td width='100' align='center'>COMPRESS('text'), LENGTH(COMPRESS('text'))<
echo "</tr>";
$result = mysql_query("SELECT COMPRESS('text'),
LENGTH(COMPRESS('text')) as Length "); //Length is an alias
echo "<tr>";
echo "<td align='center' width='200'>" . 
$row["COMPRESS('text')"] . "</td>";
echo "<td align='center' width='200'>" . 
$row["Length"] . "</td>";
echo "</tr>";
echo "</table>";

View the example in browser

Previous: AES_ENCRYPT()
Next: DECODE()

Follow us on Facebook and Twitter for latest update.

We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook