I MariaDB, UNHEX()
är en inbyggd strängfunktion som utför den omvända operationen av HEX()
funktion.
Medan HEX()
funktion returnerar en hexadecimal representation av en given sträng, UNHEX()
funktion returnerar strängrepresentationen av ett givet hexadecimalt värde.
Närmare bestämt UNHEX()
tolkar varje par hexadecimala siffror i sitt argument som ett tal och konverterar det sedan till det tecken som representeras av talet.
Resultatet returneras som en binär sträng.
Syntax
Syntaxen ser ut så här:
UNHEX(str)
Där str
är det hexadecimala värdet som ska ”ohexas”.
Exempel
Här är ett grundläggande exempel:
SELECT UNHEX('61');
Resultat:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
Den hexadecimala representationen av den gemena bokstaven a
är 61
, och så genom att skicka 61
till UNHEX()
funktion får vi den gemena bokstaven a
.
Här är ett exempel som går igenom några fler hexadecimala värden:
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 (med vertikal utdata):
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
Jämfört med HEX()
Här är ett exempel som kapslar HEX()
inuti UNHEX()
för att returnera den ursprungliga strängen:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Resultat:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
Kom dock ihåg att UNHEX()
returnerar resultatet som en binär sträng:
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 | +-----------------+-----------------+---------+
Nollargument
Skickar null
till UNHEX()
resulterar i null
:
SELECT UNHEX(null);
Resultat:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Inga argument godkänns
Anropar UNHEX()
utan att skicka några argument resulterar i ett fel:
SELECT UNHEX();
Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'