MariaDB
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> MariaDB

Cách HEX () hoạt động trong MariaDB

Trong MariaDB, HEX() là một hàm chuỗi tích hợp trả về biểu diễn chuỗi thập lục phân cho đối số của nó.

Nó hoạt động như thế này:

  • Nếu đối số của nó là một số, HEX() trả về một biểu diễn chuỗi của giá trị thập lục phân của số.
  • Nếu đối số là một chuỗi, HEX() trả về biểu thị chuỗi thập lục phân của chuỗi, trong đó mỗi byte của mỗi ký tự trong chuỗi được chuyển đổi thành hai chữ số thập lục phân.
  • Bắt đầu trong MariaDB 10.5.0, HEX() với INET6 đối số trả về một biểu diễn thập lục phân của chuỗi nhị phân 16 byte bên dưới.

Cú pháp

Cú pháp như sau:

HEX(N_or_S)

Nơi N_or_S là một số hoặc một chuỗi.

Ví dụ

Đây là một ví dụ cơ bản:

SELECT HEX(15);

Kết quả:

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

Ở đây, chúng tôi nhận được giá trị thập lục phân của 15 , là F .

Trong số thập phân, phép đếm sẽ như sau:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.

Nhưng trong hệ thập lục phân, nó diễn ra như thế này:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

Vì vậy, nếu số của chúng tôi nằm trong khoảng từ 0 đến 9, chúng tôi sẽ có cùng giá trị với phần thập phân của nó.

Dưới đây là một ví dụ khác chứng minh cách hệ thống thập lục phân tăng các giá trị của nó:

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

Kết quả (sử dụng đầu ra dọc):

        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

Chuỗi

Như đã đề cập, nếu đối số là một chuỗi, HEX() trả về biểu thị chuỗi thập lục phân của chuỗi, trong đó mỗi byte của mỗi ký tự trong chuỗi được chuyển đổi thành hai chữ số thập lục phân.

Ví dụ:

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

Kết quả (sử dụng đầu ra dọc):

           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

Bắt đầu trong MariaDB 10.5.0, HEX() với INET6 đối số trả về một biểu diễn thập lục phân của chuỗi nhị phân 16 byte bên dưới.

Ví dụ:

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

Kết quả:

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

Đây là một lần nữa, nhưng sử dụng dạng viết tắt của cùng một địa chỉ IPv6:

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

Kết quả:

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

Đối số rỗng

Chuyển null thành HEX() kết quả là null :

SELECT HEX(null);

Kết quả:

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

Không tranh luận

Đang gọi HEX() mà không chuyển bất kỳ đối số nào dẫn đến lỗi:

SELECT HEX();

Kết quả:

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. 2 cách để biết ngày nào thuộc về quý trong MariaDB

  2. Cách phát hiện xem giá trị có chứa ít nhất một chữ số trong MariaDB hay không

  3. Những gì khách hàng của chúng tôi mong muốn:Giới thiệu Tài liệu Doanh nghiệp của MariaDB

  4. Cách TIME () hoạt động trong MariaDB

  5. So sánh Amazon RDS Point-in-Time Recovery với ClusterControl