In MariaDB, UNHEX()
is een ingebouwde tekenreeksfunctie die de inverse bewerking van de HEX()
. uitvoert functie.
Terwijl de HEX()
functie retourneert een hexadecimale representatie van een gegeven string, de UNHEX()
functie retourneert de tekenreeksrepresentatie van een gegeven hexadecimale waarde.
In het bijzonder UNHEX()
interpreteert elk paar hexadecimale cijfers in zijn argument als een getal en converteert het vervolgens naar het teken dat door het getal wordt vertegenwoordigd.
Het resultaat wordt geretourneerd als een binaire tekenreeks.
Syntaxis
De syntaxis gaat als volgt:
UNHEX(str)
Waar str
is de hexadecimale waarde die "unhexed" moet zijn.
Voorbeeld
Hier is een eenvoudig voorbeeld:
SELECT UNHEX('61');
Resultaat:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
De hexadecimale weergave van de kleine letter a
is 61
, en dus door 61
. door te geven naar de UNHEX()
functie krijgen we de kleine letter a
.
Hier is een voorbeeld dat nog een paar hexadecimale waarden doorloopt:
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');
Resultaat (met verticale uitvoer):
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
Vergeleken met HEX()
Hier is een voorbeeld dat HEX()
nestt binnen UNHEX()
om de originele string terug te geven:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Resultaat:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
Houd er echter rekening mee dat UNHEX()
geeft het resultaat terug als een binaire tekenreeks:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Resultaat:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
Nullargumenten
Doorgeven van null
naar UNHEX()
resulteert in null
:
SELECT UNHEX(null);
Resultaat:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Geen argumenten doorgeven
Aanroepen van UNHEX()
zonder het doorgeven van argumenten resulteert in een fout:
SELECT UNHEX();
Resultaat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'