Tengo una enumeración: ENUM('alpha', 'beta', 'gamma', 'delta', 'omega')
¿Puedo comparar enums de MySQL?
Si ordeno mi tabla por esta columna, los obtengo en el orden correcto definido anteriormente.
Sin embargo, no puedo encontrar la manera de seleccionar un subconjunto de estos, p. Ej. todo antes del delta El uso de WHERE status < 'delta'
solo devuelve alfa y beta, no gamma. Parece que MySQL usa una comparación de cadenas, no una comparación de índices enum.
Podría usar los números índices, es decir, WHERE status < 4
, pero es un poco un olor a código (números mágicos) y puede romperse si inserto nuevos valores en la enumeración.
Esto suena como lo contrario de mi pregunta. Quería que el pedido fuera numérico, lo cual funciona bien. Mi problema fue con la cláusula WHERE. Aunque tal vez haya una forma de convertir el campo ENUM a un valor numérico y usar eso? Realmente no me importa ahora, lo pedí hace casi un año y ni siquiera recuerdo para qué era ... – DisgruntledGoat