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'