Ver Mensaje Individual
  #4 (permalink)  
Antiguo 23/12/2011, 18:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿Por qué me ordena mal esta consulta?

Cada uno de los elementos de un ENUM tiene un valor de índice de base 1. El ordenamiento se hace en base a eso.
Según el manual de Referencia:
Cita:
Los valores ENUM se ordenan según el orden en que se enumeran los miembros en la especificación de la columna. (En otras palabras, los valores ENUM se ordenan según sus números de índice.) Por ejemplo, 'a' se ordena antes que 'b' para ENUM('a', 'b'), pero 'b' se ordena antes de 'a' para ENUM('b', 'a'). La cadena vacía se ordena antes de las cadenas no vacías, y los valores NULL se ordenan antes de todos los otros valores de la enumeración. Para evitar resultados inesperados, especifique la lista ENUM en orden alfabético. También puede usar GROUP BY CAST(col AS VARCHAR) o GROUP BY CONCAT(col) para asegurarse que la columna se ordena léxicamente en lugar de por número de índice.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 25/12/2011 a las 19:19