In MariaDB, UNHEX()
è una funzione di stringa incorporata che esegue l'operazione inversa di HEX()
funzione.
Considerando che HEX()
La funzione restituisce una rappresentazione esadecimale di una determinata stringa, il UNHEX()
La funzione restituisce la rappresentazione di stringa di un dato valore esadecimale.
In particolare, UNHEX()
interpreta ogni coppia di cifre esadecimali nel suo argomento come un numero, quindi lo converte nel carattere rappresentato dal numero.
Il risultato viene restituito come una stringa binaria.
Sintassi
La sintassi è questa:
UNHEX(str)
Dove str
è il valore esadecimale da "non esadecimale".
Esempio
Ecco un esempio di base:
SELECT UNHEX('61');
Risultato:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
La rappresentazione esadecimale della lettera minuscola a
è 61
, e quindi passando 61
al UNHEX()
funzione, otteniamo la lettera minuscola a
.
Ecco un esempio che scorre attraverso alcuni altri valori esadecimali:
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');
Risultato (usando l'output verticale):
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
Rispetto a HEX()
Ecco un esempio che nidifica HEX()
dentro UNHEX()
per restituire la stringa originale:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Risultato:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
Tuttavia, tieni presente che UNHEX()
restituisce il risultato come stringa binaria:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Risultato:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
Argomenti nulli
Passaggio null
a UNHEX()
risulta null
:
SELECT UNHEX(null);
Risultato:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Nessun argomento superato
Chiamando UNHEX()
senza passare alcun argomento genera un errore:
SELECT UNHEX();
Risultato:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'