V MariaDB, UNHEX()
je vestavěná řetězcová funkce, která provádí inverzní operaci k HEX()
funkce.
Zatímco HEX()
Funkce vrací hexadecimální reprezentaci daného řetězce, UNHEX()
funkce vrací řetězcovou reprezentaci dané hexadecimální hodnoty.
Konkrétně UNHEX()
interpretuje každou dvojici hexadecimálních číslic ve svém argumentu jako číslo a poté je převede na znak reprezentovaný číslem.
Výsledek je vrácen jako binární řetězec.
Syntaxe
Syntaxe vypadá takto:
UNHEX(str)
Kde str
je hexadecimální hodnota, která má být „nehexedována“.
Příklad
Zde je základní příklad:
SELECT UNHEX('61');
Výsledek:
+--------------+| UNHEX('61') |+-------------+| a |+-------------+
Hexadecimální reprezentace malého písmene a
je 61
, a tak předáním 61
do UNHEX()
funkce, dostaneme malé písmeno a
.
Zde je příklad, který prochází několika dalšími hexadecimálními hodnotami:
SELECT
UNHEX('61'),
UNHEX('6161'),
UNHEX('41'),
UNHEX('4141'),
UNHEX('62'),
UNHEX('6262'),
UNHEX('42'),
UNHEX('4242'),
UNHEX('436174'),
UNHEX('446F67'),
UNHEX('50617773202620436C617773'),
UNHEX('5A65627261');
Výsledek (při použití vertikálního výstupu):
UNHEX('61'):a UNHEX('6161'):aa UNHEX('41'):A UNHEX('4141'):AA UNHEX('62'):b UNHEX('6262'):bb UNHEX('42'):B UNHEX('4242'):BB UNHEX('436174'):Kočka UNHEX('446F67'):DogUNHEX('50617773202620436C617773'):Tlapky a drápy UNHEX('):5Abra26166'):5Abra26166
Ve srovnání s HEX()
Zde je příklad, který vnoří HEX()
uvnitř UNHEX()
vrátit původní řetězec:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Výsledek:
+--------------------+------------------------- +| HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) |+--------------------+----------------- --------+| 486F6D6572204A6179 | Homer Jay |+--------------------+-------------------------- +
Mějte však na paměti, že UNHEX()
vrátí výsledek jako binární řetězec:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Výsledek:
+-----------------+-----------------+---------+ | Doslovný | HEX() | UNHEX() |+-----------------+-----------------+---------- +| utf8_general_ci | utf8_general_ci | binární |+-----------------+-----------------+---------+Nulové argumenty
Předávání
null
naUNHEX()
výsledkem jenull
:SELECT UNHEX(null);
Výsledek:
+--------------+| UNHEX(null) |+-------------+| NULL |+-------------+Nepředávání žádných argumentů
Volání
UNHEX()
bez předání jakýchkoli argumentů dojde k chybě:SELECT UNHEX();
Výsledek:
CHYBA 1582 (42000):Nesprávný počet parametrů ve volání nativní funkce 'UNHEX'