0
Ich habe in der Lage gewesen, mit substring(colname, N, 1)
den N-te Byte aus dem Feld zu bekommen, aber an diesem Punkt scheint es unmöglich, das Ergebnis als binär zu behandeln:Wie bekomme ich binäre Operationen auf dem N-ten Byte in meiner varbinary-Spalte?
> select substring(colname, N, 1) from [...]
\
> select hex(substring(colname, N, 1)) from [...]
5C
> select hex(substring(colname, N, 1) & 0xff) from [...]
0
> select cast(substring(colname, N, 1) as unsigned integer) from [...]
0
Im Vergleich zu:
> select cast(0x5c as binary);
\
> select hex(0x5c & 0xff);
5C
> select cast(0x5c as unsigned integer);
92
Was ich mit am Ende wollen, ist so etwas wie dieses:
> select [...] where substring(colname, N, 1) & 0b00100000 = 0b00100000;
Das funktioniert, aber warum ?? – l0b0
Sie benötigen den Code Ihres N-ten Zeichens, um damit zu arbeiten. Funktion ascii (..) gibt den Code zurück. –