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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage