MySQL verwendet keine Indizes, wenn eine Abfrage über ein BIT-Feld mit bitweisen Funktionen erfolgt.
Ich habe ein Feld vom Typ BIT in meiner MySQL-Tabelle. Ich möchte den Status des Datensatzes mit dem Bitwert speichern, zum Beispiel:
1 = status1
2 = status2
4 = status3
8 = status4
eder Datensatz kann mehrere Status gleichzeitig haben. Für status1 und status3 ist der Wert 1 + 4 = 5. Ich kann die Tabelle für alle Datensätze mit status3 abfragen, indem ich Folgendes verwende:
SELECT *
FROM `table`
WHERE `statuses` & 4
Ich habe Index aufstatuses
, aberEXPLAIN
gibt an, dass kein Index verwendet wird. Kann ich index in einer solchen Situation verwenden?
P.S. Die Verwendung einer separaten Viele-zu-Viele-Verknüpfungstabelle ist eine normalisierte Lösung, aber ich hätte dafür gerne eine flachere Struktur.