Tom: Gezielte Typumwandlung / Type-Casting

Beitrag lesen

Hello,

nochmal Thema Typumwandlung, dieses Mal aber zu MySQL

Ich habe einen Varbinary String, dessen hexadezimale repräsentation zum Beispiel so aussieht:

0x0010001B0074005E00620039

Nun hole ich mir mit einem Select-Statement das letzte Word (also 2 Tupel) ab:

select hex(substring(position, -2)) zahl from entries where id=1223;
zahl -> 39

select hex(substring(position, -2)) +1 zahl from entries where id=1223;
zahl -> 40

Ich möchte aber, dass MySQL mit der Zahl auch hexadzimal rechnet, also als Ergebnis 0x003A liefert. Wie kann ich das erreichen?

Alternativ wäre ich auch damit zufrieden, nach dem Select eine dezimale Darstellung von Anfang an zu haben, also anstelle von 39 dann 57. Leider finde ich keine Möglichkeit, aus dem Hex-String zwei Bytes zu extrahieren und die dann als Dezimalzahl zu behandeln.

Ich würde mir für die rechenoperationen gerne den Umweg über PHP ersparen. dafür benötige ich in MySQL aber ein Pendant für pack() und unpack().

Bisher ausprobiert habe ich
* binaray
* cast()
* convert()
* hex()
* unhex()

dec() scheint es ja nicht zu geben?

Liebe Grüße aus dem schönen Oberharz

Tom vom Berg

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://bikers-lodge.com