No MariaDB,
UNHEX()
é uma função de string embutida que executa a operação inversa do HEX()
função. Considerando que, o
HEX()
A função retorna uma representação hexadecimal de uma determinada string, o UNHEX()
A função retorna a representação de string de um determinado valor hexadecimal. Especificamente,
UNHEX()
interpreta cada par de dígitos hexadecimais em seu argumento como um número e o converte no caractere representado pelo número. O resultado é retornado como uma string binária.
Sintaxe
A sintaxe fica assim:
UNHEX(str)
Onde
str
é o valor hexadecimal a ser “não hexadecimal”. Exemplo
Segue um exemplo básico:
SELECT UNHEX('61');
Resultado:
+-------------+| UNHEX('61') |+-------------+| a |+-------------+
A representação hexadecimal da letra minúscula
a
é 61
, e assim passando 61
para o UNHEX()
função, obtemos a letra minúscula a
. Aqui está um exemplo que percorre mais alguns valores hexadecimais:
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 saída 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'):Gato UNHEX('446F67'):DogUNHEX('50617773202620436C617773'):Patas e Garras UNHEX('5A65627261'):Zebra
Comparado com HEX()
Aqui está um exemplo que aninha
HEX()
dentro de UNHEX()
para retornar a string original:SELECT
HEX('Homer Jay'),
UNHEX(HEX('Homer Jay'));
Resultado:
+--------------------+------------------------- +| HEX('Homer Jay') | UNHEX(HEX('Homer Jay')) |+--------------------+----------------- --------+| 486F6D6572204A6179 | Homer Jay |+--------------------+------------------------- +
No entanto, tenha em mente que
UNHEX()
retorna seu resultado como uma string binária: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 | binário |+-----------------+-----------------+---------+Argumentos nulos
Passandonull
paraUNHEX()
resulta emnull
:
SELECT UNHEX(null);
Resultado:
+-------------+| UNHEX(nulo) |+-------------+| NULL |+-------------+Não passa argumentos
ChamandoUNHEX()
sem passar nenhum argumento resulta em um erro:
SELECT UNHEX();
Resultado:
ERRO 1582 (42000):contagem de parâmetro incorreta na chamada para a função nativa 'UNHEX'