MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Jak HEX() działa w MariaDB

W MariaDB, HEX() jest wbudowaną funkcją ciągów znaków, która zwraca szesnastkową reprezentację jej argumentu w postaci ciągu znaków.

Działa to tak:

  • Jeśli jej argumentem jest liczba, HEX() zwraca ciąg reprezentujący szesnastkową wartość liczby.
  • Jeśli argument jest ciągiem, HEX() zwraca szesnastkową reprezentację ciągu, w której każdy bajt każdego znaku w ciągu jest konwertowany na dwie szesnastkowe cyfry.
  • Uruchamianie w MariaDB 10.5.0, HEX() z INET6 argument zwraca szesnastkową reprezentację podstawowego 16-bajtowego ciągu binarnego.

Składnia

Składnia wygląda tak:

HEX(N_or_S)

Gdzie N_or_S jest liczbą lub ciągiem.

Przykład

Oto podstawowy przykład:

SELECT HEX(15);

Wynik:

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

Tutaj mamy wartość szesnastkową 15 , czyli F .

Liczenie w systemie dziesiętnym wyglądałoby tak:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

Ale szesnastkowo wygląda to tak:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Więc gdyby nasza liczba wynosiła od 0 do 9, otrzymalibyśmy taką samą wartość, jak jej dziesiętny odpowiednik.

Oto kolejny przykład, który pokazuje, jak system szesnastkowy zwiększa swoje wartości:

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

Wynik (przy użyciu wyjścia pionowego):

        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

Struny

Jak wspomniano, jeśli argument jest ciągiem, HEX() zwraca szesnastkową reprezentację ciągu, w której każdy bajt każdego znaku w ciągu jest konwertowany na dwie cyfry szesnastkowe.

Przykład:

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

Wynik (przy użyciu wyjścia pionowego):

           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

Począwszy od MariaDB 10.5.0, HEX() z INET6 argument zwraca szesnastkową reprezentację podstawowego 16-bajtowego ciągu binarnego.

Przykład:

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

Wynik:

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

I znowu, ale używając skróconej formy tego samego adresu IPv6:

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

Wynik:

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

Argumenty zerowe

Przekazywanie null do HEX() wyniki w null :

SELECT HEX(null);

Wynik:

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

Przekazywanie żadnych argumentów

Wywołanie HEX() bez przekazywania jakichkolwiek argumentów powoduje błąd:

SELECT HEX();

Wynik:

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. Jak LAST_DAY() działa w MariaDB

  2. Jak działa SOUNDEX() w MariaDB

  3. Jak działa POKAŻ UKŁADANIE w MariaDB

  4. Optymalizacje zapisu dla Qualcomm Centriq 2400 w wersji kandydata wersji MariaDB 10.3.5

  5. Napraw błąd 1064 (42000) podczas korzystania z operatora MINUS w MariaDB