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'