В MariaDB, HEX() е вградена низова функция, която връща шестнадесетично низово представяне на своя аргумент.
Работи така:
- Ако аргументът му е число,
HEX()връща низово представяне на шестнадесетичната стойност на числото. - Ако аргументът е низ,
HEX()връща шестнадесетично низово представяне на низа, където всеки байт от всеки знак в низа се преобразува в две шестнадесетични цифри. - Започвайки от MariaDB 10.5.0,
HEX()сINET6Аргументът връща шестнадесетично представяне на основния 16-байтов двоичен низ.
Синтаксис
Синтаксисът е така:
HEX(N_or_S)
Където N_or_S е число или низ.
Пример
Ето един основен пример:
SELECT HEX(15); Резултат:
+---------+ | HEX(15) | +---------+ | F | +---------+
Тук получаваме шестнадесетичната стойност на 15 , което е F .
В десетичната запетая преброяването ще става така:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
Но в шестнадесетичен, това е така:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Така че, ако нашето число беше между 0 и 9, щяхме да получим същата стойност като неговия десетичен аналог.
Ето още един пример, който демонстрира как шестнадесетичната система увеличава стойностите си:
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); Резултат (с помощта на вертикален изход):
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 Стрингове
Както споменахме, ако аргументът е низ, HEX() връща шестнадесетично низово представяне на низа, където всеки байт от всеки знак в низа се преобразува в две шестнадесетични цифри.
Пример:
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'); Резултат (с помощта на вертикален изход):
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
Започвайки от MariaDB 10.5.0, HEX() с INET6 Аргументът връща шестнадесетично представяне на основния 16-байтов двоичен низ.
Пример:
SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)); Резултат:
+---------------------------------------------------------------+
| HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) |
+---------------------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B |
+---------------------------------------------------------------+ Ето го отново, но използвайки съкратената форма на същия IPv6 адрес:
SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)); Резултат:
+---------------------------------------------------+
| HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) |
+---------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B |
+---------------------------------------------------+ Нулеви аргументи
Предаването на null към HEX() води до null :
SELECT HEX(null); Резултат:
+-----------+ | HEX(null) | +-----------+ | NULL | +-----------+
Не се предават аргументи
Извикване на HEX() без подаване на аргументи води до грешка:
SELECT HEX(); Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'HEX'