MySQL indeholder forskellige funktioner, der kan hjælpe dig, når du arbejder med hexadecimale værdier. En af de mest oplagte funktioner er HEX()
funktion, som giver dig mulighed for at konvertere en streng til dens hexadecimale ækvivalent.
Der kan dog være tidspunkter, hvor du vil konvertere en hexadecimal streng tilbage til en mere læsbar streng. Det er det, denne artikel handler om.
Her er tre måder, hvorpå du kan "ophæve" en streng i MySQL:
UNHEX()
funktionX hexadecimal notation 0x
notation
Nedenfor er eksempler på hver af disse metoder.
UNHEX()-funktionen
Dette er en strengfunktion, der er bygget specifikt til at "afhænde" en hexadecimal streng.
Eksempel:
SELECT UNHEX('4361747320616E6420646F6773');
Resultat:
+-------------------------------------+ | UNHEX('4361747320616E6420646F6773') | +-------------------------------------+ | Cats and dogs | +-------------------------------------+
Måden UNHEX()
fungerer er, at den fortolker hvert tegnpar i argumentet som et hexadecimalt tal og konverterer det til den byte, der repræsenteres af tallet. Returværdien er en binær streng.
X-notationen
En alternativ måde at fjerne en streng på er at bruge X
notation.
Eksempel:
SELECT X'4361747320616E6420646F6773';
Resultat:
+-------------------------------+ | X'4361747320616E6420646F6773' | +-------------------------------+ | Cats and dogs | +-------------------------------+
X
notation er baseret på standard SQL. Denne notation skelner mellem store og små bogstaver, så det er ligegyldigt, om du bruger et stort X
eller små bogstaver. Dette er i modsætning til 0x
notation, som skelner mellem store og små bogstaver.
Bemærk, at X
notation kræver et lige antal cifre. Hvis du har et ulige antal cifre, kan du udfylde det med et indledende nul.
0x-notationen
Og den tredje måde at fjerne en streng på er at bruge 0x
notation.
Eksempel:
SELECT 0x4361747320616E6420646F6773;
Resultat:
+------------------------------+ | 0x4361747320616E6420646F6773 | +------------------------------+ | Cats and dogs | +------------------------------+
0x
notation er baseret på ODBC, hvor hexadecimale strenge ofte bruges til at levere værdier for BLOB-kolonner. Som nævnt er 0x
notationen skelner mellem store og små bogstaver, så det virker ikke, hvis du bruger et stort X
.
0x
notation fungerer med et ulige antal cifre, men kun fordi det vil fortolke et hvilket som helst ulige tal som at have et indledende nul (og dermed gøre det lige).
Fjern et tal
Bemærk, at han HEX()
Funktionen virker ikke på tal. For at gøre det, brug CONV()
funktion i stedet for (se Sådan fjerner du et tal i MySQL).