sql >> Databáze >  >> RDS >> MariaDB

Jak HEX() funguje v MariaDB

V MariaDB, HEX() je vestavěná řetězcová funkce, která vrací hexadecimální řetězec reprezentace svého argumentu.

Funguje to takto:

  • Pokud je jeho argumentem číslo, HEX() vrátí řetězcovou reprezentaci hexadecimální hodnoty čísla.
  • Pokud je argumentem řetězec, HEX() vrací hexadecimální reprezentaci řetězce, kde je každý bajt každého znaku v řetězci převeden na dvě hexadecimální číslice.
  • Počínaje MariaDB 10.5.0, HEX() s INET6 argument vrací hexadecimální reprezentaci základního 16bajtového binárního řetězce.

Syntaxe

Syntaxe vypadá takto:

HEX(N_or_S)

Kde N_or_S je číslo nebo řetězec.

Příklad

Zde je základní příklad:

SELECT HEX(15);

Výsledek:

+---------+
| HEX(15) |
+---------+
| F       |
+---------+

Zde jsme dostali hexadecimální hodnotu 15 , což je F .

V desítkové soustavě by počítání probíhalo takto:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

Ale v šestnáctkové soustavě to vypadá takto:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Pokud by tedy naše číslo bylo mezi 0 a 9, dostali bychom stejnou hodnotu jako jeho desetinný protějšek.

Zde je další příklad, který ukazuje, jak hexadecimální systém zvyšuje své hodnoty:

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);

Výsledek (při použití vertikálního výstupu):

        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

Řetězce

Jak již bylo zmíněno, pokud je argumentem řetězec, HEX() vrací hexadecimální reprezentaci řetězce, kde je každý bajt každého znaku v řetězci převeden na dvě hexadecimální číslice.

Příklad:

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');

Výsledek (při použití vertikálního výstupu):

           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

Počínaje MariaDB 10.5.0, HEX() s INET6 argument vrací hexadecimální reprezentaci základního 16bajtového binárního řetězce.

Příklad:

SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6));

Výsledek:

+---------------------------------------------------------------+
| HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) |
+---------------------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B                              |
+---------------------------------------------------------------+

Tady je to znovu, ale ve zkrácené podobě stejné IPv6 adresy:

SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6));

Výsledek:

+---------------------------------------------------+
| HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) |
+---------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B                  |
+---------------------------------------------------+

Nulové argumenty

Předávání null na HEX() výsledkem je null :

SELECT HEX(null);

Výsledek:

+-----------+
| HEX(null) |
+-----------+
| NULL      |
+-----------+

Nepředávání žádných argumentů

Volání HEX() bez předání jakýchkoli argumentů dojde k chybě:

SELECT HEX();

Výsledek:

ERROR 1582 (42000): Incorrect parameter count in the call to native function 'HEX'

  1. Jak zkontrolovat, zda uživatel kliknul na [Storno] na InputBox ve VBA

  2. Jak odečíst rok od data v MariaDB

  3. Nastavte znakovou sadu a řazení sloupce v MariaDB

  4. Vlastní objednávka v Oracle SQL