En MariaDB, UNHEX()
es una función de cadena incorporada que realiza la operación inversa de HEX()
función.
Mientras que, el HEX()
La función devuelve una representación hexadecimal de una cadena dada, el UNHEX()
La función devuelve la representación de cadena de un valor hexadecimal dado.
Específicamente, UNHEX()
interpreta cada par de dígitos hexadecimales en su argumento como un número y luego lo convierte al carácter representado por el número.
El resultado se devuelve como una cadena binaria.
Sintaxis
La sintaxis es así:
UNHEX(str)
Donde str
es el valor hexadecimal para ser "sin hexadecimal".
Ejemplo
He aquí un ejemplo básico:
SELECT UNHEX('61');
Resultado:
+-------------+ | UNHEX('61') | +-------------+ | a | +-------------+
La representación hexadecimal de la letra minúscula a
es 61
, y así pasando 61
al UNHEX()
función, obtenemos la letra minúscula a
.
Aquí hay un ejemplo que recorre algunos valores hexadecimales más:
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');
Resultado (usando salida vertical):
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
Comparado con HEX()
Aquí hay un ejemplo que anida HEX()
dentro de UNHEX()
para devolver la cadena original:
SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Resultado:
+--------------------+-------------------------+ | HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) | +--------------------+-------------------------+ | 486F6D6572204A6179 | Homer Jay | +--------------------+-------------------------+
Sin embargo, tenga en cuenta que UNHEX()
devuelve su resultado como una cadena binaria:
SELECT
COLLATION('Homer Jay') AS "Literal",
COLLATION(HEX('Homer Jay')) AS "HEX()",
COLLATION(UNHEX(HEX('Homer Jay'))) AS "UNHEX()";
Resultado:
+-----------------+-----------------+---------+ | Literal | HEX() | UNHEX() | +-----------------+-----------------+---------+ | utf8_general_ci | utf8_general_ci | binary | +-----------------+-----------------+---------+
Argumentos nulos
Pasando null
a UNHEX()
da como resultado null
:
SELECT UNHEX(null);
Resultado:
+-------------+ | UNHEX(null) | +-------------+ | NULL | +-------------+
Pasar Sin Argumentos
Llamando a UNHEX()
sin pasar ningún argumento da como resultado un error:
SELECT UNHEX();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'UNHEX'