MariaDB
 sql >> база данни >  >> RDS >> MariaDB

Как HEX() работи в MariaDB

В 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'

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как работи CONVERT_TZ() в MariaDB

  2. Как да открием дали дадена стойност съдържа поне една цифрова цифра в MariaDB

  3. Поправете „ГРЕШКА 1054 (42S22):Неизвестна колона „colname“ в „клауза за поръчка“ в MariaDB

  4. Функция MAX() в MariaDB

  5. Ръководство за MySQL индекси