In MariaDB HEX()
ist eine eingebaute Zeichenfolgenfunktion, die eine hexadezimale Zeichenfolgendarstellung ihres Arguments zurückgibt.
So funktioniert es:
- Wenn sein Argument eine Zahl ist,
HEX()
gibt eine Zeichenfolgendarstellung des Hexadezimalwerts der Zahl zurück. - Wenn das Argument ein String ist,
HEX()
gibt eine hexadezimale Zeichenfolgendarstellung der Zeichenfolge zurück, wobei jedes Byte jedes Zeichens in der Zeichenfolge in zwei Hexadezimalziffern umgewandelt wird. - Ab MariaDB 10.5.0,
HEX()
mit einemINET6
Das Argument gibt eine hexadezimale Darstellung der zugrunde liegenden 16-Byte-Binärzeichenfolge zurück.
Syntax
Die Syntax lautet wie folgt:
HEX(N_or_S)
Wobei N_or_S
ist eine Zahl oder ein String.
Beispiel
Hier ist ein einfaches Beispiel:
SELECT HEX(15);
Ergebnis:
+---------+| HEX(15) |+---------+| F |+---------+
Hier haben wir den hexadezimalen Wert von 15
, was F
ist .
Dezimal würde die Zählung so aussehen:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15.
Aber hexadezimal sieht es so aus:0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Wenn unsere Zahl also zwischen 0 und 9 gewesen wäre, hätten wir den gleichen Wert wie ihr dezimales Gegenstück bekommen.
Hier ist ein weiteres Beispiel, das zeigt, wie das Hexadezimalsystem seine Werte erhöht:
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);
Ergebnis (bei vertikaler Ausgabe):
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):20HEX(789456768):2F0E2780
Strings
Wie bereits erwähnt, wenn das Argument ein String ist, HEX()
gibt eine hexadezimale Zeichenfolgendarstellung der Zeichenfolge zurück, wobei jedes Byte jedes Zeichens in der Zeichenfolge in zwei hexadezimale Ziffern umgewandelt wird.
Beispiel:
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');
Ergebnis (bei vertikaler Ausgabe):
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('Hund'):446F67HEX('Paws &Claws'):50617773202620436C617773 HEX('Zebra'):5A65627261
INET6
Ab MariaDB 10.5.0, HEX()
mit einem INET6
Das Argument gibt eine hexadezimale Darstellung der zugrunde liegenden 16-Byte-Binärzeichenfolge zurück.
Beispiel:
SELECT HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6));
Ergebnis:
+---------------------------------------------- ------------------+| HEX(CAST('2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b' AS INET6)) |+---------------------- -----------------------------------+| 20010DB83C4D0015000000001A2F1A2B |+---------------------------------------------- ----------------+
Hier ist es noch einmal, aber mit der abgekürzten Form derselben IPv6-Adresse:
SELECT HEX(CAST('2001:db8:3c4d:15::1a2f:1a2b' AS INET6));
Ergebnis:
Null-Argumente
Übergabe von null
zu HEX()
ergibt null
:
SELECT HEX(null);
Ergebnis:
+-----------+| HEX(null) |+-----------+| NULL |+-----------+
Keine Argumente übergeben
Aufruf von HEX()
ohne Argumente zu übergeben führt zu einem Fehler:
SELECT HEX();
Ergebnis:
FEHLER 1582 (42000):Falsche Parameteranzahl im Aufruf der nativen Funktion „HEX“