No MariaDB,
HEX()
é uma função de string interna que retorna uma representação de string hexadecimal de seu argumento. Funciona assim:
- Se o argumento for um número,
HEX()
retorna uma representação de string do valor hexadecimal do número. - Se o argumento for uma string,
HEX()
retorna uma representação de string hexadecimal da string, onde cada byte de cada caractere na string é convertido em dois dígitos hexadecimais. - A partir do MariaDB 10.5.0,
HEX()
com umINET6
O argumento retorna uma representação hexadecimal da string binária de 16 bytes subjacente.
Sintaxe
A sintaxe fica assim:
HEX(N_or_S)
Onde
N_or_S
é um número ou uma string. Exemplo
Segue um exemplo básico:
SELECT HEX(15);
Resultado:
+---------+ | HEX(15) | +---------+ | F | +---------+
Aqui, temos o valor hexadecimal de
15
, que é F
. Em decimal, a contagem seria assim:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
Mas em hexadecimal, fica assim:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Portanto, se nosso número estivesse entre 0 e 9, teríamos o mesmo valor que sua contraparte decimal.
Aqui está outro exemplo que demonstra como o sistema hexadecimal incrementa seus valores:
SELECT
HEX(0),
HEX(1),
HEX(2),
HEX(3),
HEX(4),
HEX(5),
HEX(6),
HEX(7),
HEX(8),
HEX(9),
HEX(10),
HEX(11),
HEX(12),
HEX(13),
HEX(14),
HEX(15),
HEX(16),
HEX(17),
HEX(18),
HEX(19),
HEX(20),
HEX(21),
HEX(22),
HEX(23),
HEX(24),
HEX(25),
HEX(26),
HEX(27),
HEX(28),
HEX(29),
HEX(30),
HEX(31),
HEX(32),
HEX(789456768);
Resultado (usando saída vertical):
HEX(0): 0 HEX(1): 1 HEX(2): 2 HEX(3): 3 HEX(4): 4 HEX(5): 5 HEX(6): 6 HEX(7): 7 HEX(8): 8 HEX(9): 9 HEX(10): A HEX(11): B HEX(12): C HEX(13): D HEX(14): E HEX(15): F HEX(16): 10 HEX(17): 11 HEX(18): 12 HEX(19): 13 HEX(20): 14 HEX(21): 15 HEX(22): 16 HEX(23): 17 HEX(24): 18 HEX(25): 19 HEX(26): 1A HEX(27): 1B HEX(28): 1C HEX(29): 1D HEX(30): 1E HEX(31): 1F HEX(32): 20 HEX(789456768): 2F0E2780
Cordas
Como mencionado, se o argumento for uma string,
HEX()
retorna uma representação de string hexadecimal da string, onde cada byte de cada caractere na string é convertido em dois dígitos hexadecimais. Exemplo:
SELECT
HEX('a'),
HEX('aa'),
HEX('A'),
HEX('AA'),
HEX('b'),
HEX('bb'),
HEX('B'),
HEX('BB'),
HEX('Cat'),
HEX('Dog'),
HEX('Paws & Claws'),
HEX('Zebra');
Resultado (usando saída vertical):
HEX('a'): 61 HEX('aa'): 6161 HEX('A'): 41 HEX('AA'): 4141 HEX('b'): 62 HEX('bb'): 6262 HEX('B'): 42 HEX('BB'): 4242 HEX('Cat'): 436174 HEX('Dog'): 446F67 HEX('Paws & Claws'): 50617773202620436C617773 HEX('Zebra'): 5A65627261
INET6
A partir do MariaDB 10.5.0,
HEX()
com um INET6
O argumento retorna uma representação hexadecimal da string binária de 16 bytes subjacente. Exemplo:
SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6));
Resultado:
+---------------------------------------------------------------+ | HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) | +---------------------------------------------------------------+ | 20010DB83C4D0015000000001A2F1A2B | +---------------------------------------------------------------+
Aqui está novamente, mas usando a forma abreviada do mesmo endereço IPv6:
SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6));
Resultado:
+---------------------------------------------------+ | HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) | +---------------------------------------------------+ | 20010DB83C4D0015000000001A2F1A2B | +---------------------------------------------------+
Argumentos nulos
Passando
null
para HEX()
resulta em null
:SELECT HEX(null);
Resultado:
+-----------+ | HEX(null) | +-----------+ | NULL | +-----------+
Não passa argumentos
Chamando
HEX()
sem passar nenhum argumento resulta em um erro:SELECT HEX();
Resultado:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'HEX'