Ich habe eine Aufzählung: ENUM('alpha', 'beta', 'gamma', 'delta', 'omega')
Kann ich MySQL-Enums vergleichen?
Wenn ich meine Tabelle nach dieser Spalte sortiere, bekomme ich sie in der richtigen Reihenfolge wie oben definiert.
Jedoch kann ich keinen Weg finden, eine Teilmenge von diesen auszuwählen, z.B. alles vor dem Delta. Mit WHERE status < 'delta'
gibt nur Alpha und Beta, nicht Gamma zurück. Es sieht so aus, als ob MySQL einen String-Vergleich verwendet, nicht einen Enum-Index-Vergleich.
Ich könnte die Indexnummern verwenden - d. H. WHERE status < 4
- aber es ist ein bisschen ein Code-Geruch (magische Zahlen) und kann brechen, wenn ich neue Werte in die Aufzählung einfügen.
Das klingt wie das Gegenteil meiner Frage. Ich wollte, dass die Reihenfolge numerisch ist, was gut ist. Mein Problem war mit der WHERE-Klausel. Obwohl es vielleicht eine Möglichkeit gibt, das ENUM-Feld in einen numerischen Wert umzuwandeln und zu verwenden? Ist mir jetzt wirklich egal, ich fragte das vor fast einem Jahr und ich erinnere mich nicht einmal daran, wofür es war ... – DisgruntledGoat