UNCOMPRESS() în MySQL

Criptare și hash MySQL 5.0+

Decomprimă un text comprimat cu COMPRESS(); returnează NULL dacă datele nu sunt comprimate.

Sintaxă
UNCOMPRESS(text_comprimat)

Ce face UNCOMPRESS()

UNCOMPRESS() este operația inversă pentru COMPRESS(). Dacă argumentul nu este un rezultat valid al lui COMPRESS(), funcția returnează NULL și afișează un avertisment.

Rezultatul este binar. În clientul mysql din linia de comandă, interactiv, poate apărea în hexazecimal; transformă-l cu CAST(... AS CHAR) dacă ai nevoie de text.

Parametri

Parametru Descriere
text_comprimat Rezultatul lui COMPRESS().

Ce returnează

Textul original (binar) sau NULL.

Exemple

Exemplul 1: Dus-întors și date necomprimate

SELECT CAST(UNCOMPRESS(COMPRESS('Ana are mere')) AS CHAR) AS original;
SELECT UNCOMPRESS('text obișnuit') AS necomprimat;

Rezultat

+--------------+
| original     |
+--------------+
| Ana are mere |
+--------------+
+-------------+
| necomprimat |
+-------------+
| NULL        |
+-------------+
Warning (Code 1256): Uncompressed data size too large; the maximum size is 67108864 (probably, length of uncompressed data was corrupted)

Greșeli frecvente

  • Apelezi UNCOMPRESS() pe o coloană în care unele rânduri nu au fost comprimate. Pentru ele primești NULL și avertismente.

Comenzi înrudite

  • COMPRESS(): Comprimă un text (cu zlib) și returnează rezultatul ca șir binar.
  • UNCOMPRESSED_LENGTH(): Returnează lungimea pe care o avea textul înainte de COMPRESS(), fără să-l decomprime.