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()
denganINET6
argumen 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'