RFZ: SELECT auf einzelne bytes in BINARY(N)

Beitrag lesen

Moin

Nicht dass ich wüsste. In der SELECT-Klausel vielleicht, wenn du die Bytes nicht einzeln sondern am Stück zurückgibst und im abfragenden Programm auseinandernimmst.

das abfragende Programm bin ich - ich mache einfach Auswertungen über die Datenmenge und würde gerne auf weiteren Programmcode verzichten...

EXPLAIN kann dir Fragen zum verwendeten Index genau beantworten.

Danke, schaue ich mir mal an

MySQL hat im Handbuch eine Übersicht zu allen Funktionen. Wenn du da was passendes findest ...

Habe ich natürlich gemacht, aber ausser SUBSTR() sehe ich nichts um an einzelne Bytes zu kommen, die dann als STRING bereit stehen. Danach braucht es zwangsweise ein HEX(), ASCII() oder CONVERT() um mit den Daten was anfangen zu können. Das ist etwas schade. Mehr habe ich nicht gefunden.

Noch jemand Ideen?

Wenn ich für jedes Byte eine Spalte anlege und die Bytes als 8 Bit INT anlege, dann geht es schon eleganter, vor allem mit Binäroperationen:

SELECT  
    HEX(Byte00),  
    HEX(Byte01),  
    HEX(Byte02),  
    HEX(Byte03),  
    (Byte00 << 8)|Byte01  
FROM  
    data  
WHERE  
    Byte02 = 0x88

Aber ist das der bessere Weg?