Di MariaDB, HEX() adalah fungsi string bawaan yang mengembalikan representasi string heksadesimal dari argumennya.
Ini bekerja seperti ini:
- Jika argumennya berupa angka,
HEX()mengembalikan representasi string dari nilai heksadesimal nomor tersebut. - Jika argumennya berupa string,
HEX()mengembalikan representasi string heksadesimal dari string, di mana setiap byte dari setiap karakter dalam string diubah menjadi dua digit heksadesimal. - Mulai dari MariaDB 10.5.0,
HEX()denganINET6argumen mengembalikan representasi heksadesimal dari string biner 16-byte yang mendasarinya.
Sintaks
Sintaksnya seperti ini:
HEX(N_or_S)
Dimana N_or_S adalah angka atau string.
Contoh
Berikut ini contoh dasarnya:
SELECT HEX(15); Hasil:
+---------+ | HEX(15) | +---------+ | F | +---------+
Di sini, kita mendapatkan nilai heksadesimal dari 15 , yaitu F .
Dalam desimal, penghitungannya akan seperti ini:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
Tapi dalam heksadesimal, jadinya seperti ini:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Jadi jika angka kita antara 0 dan 9, kita akan mendapatkan nilai yang sama dengan rekan desimalnya.
Berikut adalah contoh lain yang menunjukkan bagaimana sistem heksadesimal meningkatkan nilainya:
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); Hasil (menggunakan keluaran vertikal):
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 String
Seperti yang disebutkan, jika argumennya adalah string, HEX() mengembalikan representasi string heksadesimal dari string, di mana setiap byte dari setiap karakter dalam string diubah menjadi dua digit heksadesimal.
Contoh:
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'); Hasil (menggunakan keluaran vertikal):
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
Mulai dari MariaDB 10.5.0, HEX() dengan INET6 argumen mengembalikan representasi heksadesimal dari string biner 16-byte yang mendasarinya.
Contoh:
SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)); Hasil:
+---------------------------------------------------------------+
| HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) |
+---------------------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B |
+---------------------------------------------------------------+ Ini dia lagi, tetapi menggunakan bentuk singkatan dari alamat IPv6 yang sama:
SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)); Hasil:
+---------------------------------------------------+
| HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) |
+---------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B |
+---------------------------------------------------+ Argumen Null
Melewati null ke HEX() menghasilkan null :
SELECT HEX(null); Hasil:
+-----------+ | HEX(null) | +-----------+ | NULL | +-----------+
Tidak Menyampaikan Argumen
Memanggil HEX() tanpa meneruskan argumen apa pun menghasilkan kesalahan:
SELECT HEX(); Hasil:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'HEX'