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
PassandonullparaUNHEX()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'