In MariaDB, UNHEX()
ist eine eingebaute Zeichenfolgenfunktion, die die umgekehrte Operation von HEX()
ausführt Funktion.
Wohingegen das HEX()
Funktion gibt eine hexadezimale Darstellung einer gegebenen Zeichenkette zurück, den UNHEX()
Funktion gibt die String-Darstellung eines gegebenen Hexadezimalwerts zurück.
Insbesondere UNHEX()
interpretiert jedes Paar hexadezimaler Ziffern in seinem Argument als Zahl und wandelt es dann in das Zeichen um, das durch die Zahl dargestellt wird.
Das Ergebnis wird als binärer String zurückgegeben.
Syntax
Die Syntax sieht so aus:
UNHEX(str)
Wobei str
ist der Hexadezimalwert, der „ungezähmt“ werden soll.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT UNHEX('61');
Ergebnis:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
Die hexadezimale Darstellung des Kleinbuchstabens a
ist 61
, also durch Übergeben von 61
zum UNHEX()
Funktion erhalten wir den Kleinbuchstaben a
.
Hier ist ein Beispiel, das ein paar weitere Hexadezimalwerte durchläuft:
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');
Ergebnis (bei vertikaler Ausgabe):
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
Im Vergleich zu HEX()
Hier ist ein Beispiel, das HEX()
verschachtelt innerhalb von UNHEX()
um die ursprüngliche Zeichenkette zurückzugeben:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Ergebnis:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
Beachten Sie jedoch, dass UNHEX()
gibt sein Ergebnis als binären String zurück:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Ergebnis:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
Null-Argumente
Übergabe von null
zu UNHEX()
ergibt null
:
SELECT UNHEX(null);
Ergebnis:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Keine Argumente übergeben
Aufruf von UNHEX()
ohne Übergabe von Argumenten ergibt sich ein Fehler:
SELECT UNHEX();
Ergebnis:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'