I MariaDB, UNHEX()
er en indbygget strengfunktion, der udfører den omvendte operation af HEX()
funktion.
Hvorimod HEX()
funktion returnerer en hexadecimal repræsentation af en given streng, UNHEX()
funktion returnerer strengrepræsentationen af en given hexadecimal værdi.
Specifikt UNHEX()
fortolker hvert par hexadecimale cifre i dets argument som et tal og konverterer det derefter til tegnet repræsenteret af tallet.
Resultatet returneres som en binær streng.
Syntaks
Syntaksen ser sådan ud:
UNHEX(str)
Hvor str
er den hexadecimale værdi, der skal "unhexed".
Eksempel
Her er et grundlæggende eksempel:
SELECT UNHEX('61');
Resultat:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
Den hexadecimale repræsentation af det lille bogstav a
er 61
, og så ved at sende 61
til UNHEX()
funktion, får vi det lille bogstav a
.
Her er et eksempel, der løber gennem et par hexadecimale værdier:
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');
Resultat (ved hjælp af lodret output):
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'): Cat UNHEX('446F67'): Dog UNHEX('50617773202620436C617773'): Paws & Claws UNHEX('5A65627261'): Zebra
Sammenlignet med HEX()
Her er et eksempel, der indlejrer HEX()
inde i UNHEX()
for at returnere den originale streng:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Resultat:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
Husk dog, at UNHEX()
returnerer sit resultat som en binær streng:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Resultat:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
Nul-argumenter
Sender null
til UNHEX()
resulterer i null
:
SELECT UNHEX(null);
Resultat:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Ingen argumenter bestået
Kalder UNHEX()
uden at sende nogen argumenter resulterer det i en fejl:
SELECT UNHEX();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'