I MariaDB, HEX() er en indbygget strengfunktion, der returnerer en hexadecimal strengrepræsentation af dets argument.
Det fungerer sådan her:
- Hvis argumentet er et tal,
HEX()returnerer en strengrepræsentation af tallets hexadecimale værdi. - Hvis argumentet er en streng,
HEX()returnerer en hexadecimal strengrepræsentation af strengen, hvor hver byte af hvert tegn i strengen konverteres til to hexadecimale cifre. - Starter i MariaDB 10.5.0,
HEX()med enINET6argument returnerer en hexadecimal repræsentation af den underliggende 16-byte binære streng.
Syntaks
Syntaksen ser sådan ud:
HEX(N_or_S)
Hvor N_or_S er et tal eller en streng.
Eksempel
Her er et grundlæggende eksempel:
SELECT HEX(15); Resultat:
+---------+ | HEX(15) | +---------+ | F | +---------+
Her fik vi den hexadecimale værdi af 15 , som er F .
I decimal vil optællingen gå sådan her:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
Men i hexadecimal går det sådan her:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Så hvis vores tal havde været mellem 0 og 9, ville vi have fået samme værdi som dets decimalmodstykke.
Her er et andet eksempel, der viser, hvordan det hexadecimale system øger dets værdier:
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); Resultat (ved hjælp af lodret output):
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 Strenge
Som nævnt, hvis argumentet er en streng, HEX() returnerer en hexadecimal strengrepræsentation af strengen, hvor hver byte af hvert tegn i strengen konverteres til to hexadecimale cifre.
Eksempel:
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'); Resultat (ved hjælp af lodret output):
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
Starter i MariaDB 10.5.0, HEX() med en INET6 argument returnerer en hexadecimal repræsentation af den underliggende 16-byte binære streng.
Eksempel:
SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)); Resultat:
+---------------------------------------------------------------+
| HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) |
+---------------------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B |
+---------------------------------------------------------------+ Her er det igen, men ved at bruge den forkortede form af den samme IPv6-adresse:
SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)); Resultat:
+---------------------------------------------------+
| HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6)) |
+---------------------------------------------------+
| 20010DB83C4D0015000000001A2F1A2B |
+---------------------------------------------------+ Nul-argumenter
Sender null til HEX() resulterer i null :
SELECT HEX(null); Resultat:
+-----------+ | HEX(null) | +-----------+ | NULL | +-----------+
Ikke bestået nogen argumenter
Kalder HEX() uden at sende nogen argumenter resulterer det i en fejl:
SELECT HEX(); Resultat:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'HEX'