In MariaDB, UNCOMPRESS()
è una funzione incorporata che decomprime una stringa che è stata compressa da COMPRESS()
funzione.
Sintassi
La sintassi è questa:
UNCOMPRESS(string_to_uncompress)
Dove string_to_uncompress
è la stringa che vuoi decomprimere.
Esempio
Ecco un esempio di base:
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Risultato:
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
Controllo delle dimensioni
Ecco un esempio di base:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";
Risultato:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Qui, ho usato il LENGTH()
funzione per ottenere rispettivamente la lunghezza in byte delle stringhe non compresse e compresse. Ho usato REPEAT()
funzione per ripetere la stessa lettera 50 volte prima di comprimerla.
Ecco un altro esempio che utilizza il simbolo del copyright (©
), che è un carattere a due byte:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";
Risultato:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Eccone uno che utilizza un carattere a tre byte:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";
Risultato:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Argomenti nulli
Passaggio null
restituisce null
:
SELECT UNCOMPRESS(null);
Risultato:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Argomento mancante
Chiamando UNCOMPRESS()
con il numero errato di argomenti o senza passare alcun argomento genera un errore:
SELECT UNCOMPRESS();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Verifica la compressione
Il UNCOMPRESS()
la funzione richiede che MariaDB sia stata compilata con una libreria di compressione come zlib. Se MariaDB non è stata compilata con tale libreria di compressione, UNCOMPRESS()
restituisce null
.
Puoi controllare have_compress
variabile di sistema per vedere se la libreria di compressione zlib è accessibile o meno al server:
SELECT @@have_compress;
Risultato:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
In questo caso, la libreria di compressione zlib è accessibile al server e il risultato è YES
.
Se la libreria di compressione zlib non è accessibile al server, il risultato sarebbe NO
.