MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Como UNHEX() funciona no MariaDB


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


Passando null para UNHEX() resulta em null :
SELECT UNHEX(null); 

Resultado:
+-------------+| UNHEX(nulo) |+-------------+| NULL |+-------------+

Não passa argumentos


Chamando UNHEX() 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'