Di MariaDB, UNCOMPRESS()
adalah fungsi bawaan yang membuka kompresi string yang telah dikompresi oleh COMPRESS()
fungsi.
Sintaks
Sintaksnya seperti ini:
UNCOMPRESS(string_to_uncompress)
Dimana string_to_uncompress
adalah string yang ingin Anda buka kompresinya.
Contoh
Berikut ini contoh dasarnya:
SELECT UNCOMPRESS(COMPRESS('Marching on'));
Hasil:
+-------------------------------------+ | UNCOMPRESS(COMPRESS('Marching on')) | +-------------------------------------+ | Marching on | +-------------------------------------+
Memeriksa Ukuran
Berikut ini contoh dasarnya:
SELECT
LENGTH(REPEAT('z', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('z', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('z', 50)))) AS "Uncompressed";
Hasil:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 50 | 16 | 50 | +--------------+------------+--------------+
Di sini, saya menggunakan LENGTH()
fungsi untuk mendapatkan panjang dalam byte dari string terkompresi dan terkompresi masing-masing. Saya menggunakan REPEAT()
berfungsi untuk mengulang huruf yang sama sebanyak 50 kali sebelum mengompresnya.
Berikut contoh lain yang menggunakan simbol hak cipta (©
), yang merupakan karakter dua byte:
SELECT
LENGTH(REPEAT('©', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('©', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('©', 50)))) AS "Uncompressed";
Hasil:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 100 | 17 | 100 | +--------------+------------+--------------+
Ini yang menggunakan karakter tiga byte:
SELECT
LENGTH(REPEAT('อ', 50)) AS "Uncompressed",
LENGTH(COMPRESS(REPEAT('อ', 50))) AS "Compressed",
LENGTH(UNCOMPRESS(COMPRESS(REPEAT('อ', 50)))) AS "Uncompressed";
Hasil:
+--------------+------------+--------------+ | Uncompressed | Compressed | Uncompressed | +--------------+------------+--------------+ | 150 | 18 | 150 | +--------------+------------+--------------+
Argumen Null
Melewati null
mengembalikan null
:
SELECT UNCOMPRESS(null);
Hasil:
+------------------+ | UNCOMPRESS(null) | +------------------+ | NULL | +------------------+
Argumen Tidak Ada
Memanggil UNCOMPRESS()
dengan jumlah argumen yang salah, atau tanpa memberikan argumen apa pun menghasilkan kesalahan:
SELECT UNCOMPRESS();
Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNCOMPRESS'
Periksa Kompresi
UNCOMPRESS()
fungsi membutuhkan MariaDB telah dikompilasi dengan perpustakaan kompresi seperti zlib. Jika MariaDB belum dikompilasi dengan pustaka kompresi seperti itu, UNCOMPRESS()
mengembalikan null
.
Anda dapat memeriksa have_compress
variabel sistem untuk melihat apakah pustaka kompresi zlib dapat diakses ke server atau tidak:
SELECT @@have_compress;
Hasil:
+-----------------+ | @@have_compress | +-----------------+ | YES | +-----------------+
Dalam hal ini, library kompresi zlib dapat diakses oleh server, dan hasilnya adalah YES
.
Jika library kompresi zlib tidak dapat diakses ke server, hasilnya adalah NO
.