Un ENUM es un objeto de cadenas de caracteres
        con un valor elegido de una lista de valores permitidos que se
        enumeran explícitamente en la especificación de columna en
        tiempo de creación de la tabla.
      
        El valor puede ser la cadena vacía ('') o
        NULL bajo ciertas circunstancias:
      
            Si inserta un valor inválido en un ENUM
            (esto es, una cadena de caracteres no presente en la lista
            de valores permitidos), la cadena vacía se inserta en lugar
            de un valor especial de error. Esta cadena puede
            distinguirse de una cadena vacía “normal” por
            el hecho que esta cadena tiene un valor numérico 0. Más
            información posteriormente.
          
            Si se declara una columna ENUM para
            permitir NULL, el valor
            NULL es un valor legal para la columna, y
            el valor por defecto es NULL. Si una
            columna ENUM se declara NOT
            NULL, su valor por defecto es el primer elemento
            de la lista de valores permitidos.
          
Cada valor de la enumeración tiene un índice:
Los valores de la lista de elementos permitidos en la especificación de la columna se numeran empezando por 1.
            El valor de índice de la cadena errónea es 0. Esto
            significa que puede usar el siguiente comando
            SELECT para encontrar registros con el
            valor inválido ENUM asignado:
          
mysql> SELECT * FROMtbl_nameWHEREenum_col=0;
            El índice del valor NULL es
            NULL.
          
        Por ejemplo, una columna especificada como ENUM('one',
        'two', 'three') puede tener cualquiera de los valores
        mostrados aquí. El índice de cada valor se muestra:
      
| Valor | Índice | 
| NULL | NULL | 
| '' | 0 | 
| 'one' | 1 | 
| 'two' | 2 | 
| 'three' | 3 | 
Una enumeración puede tener un máximo de 65,535 elementos.
        Los espacios finales se borran automáticamente para valores
        ENUM miembros cuando se crea la tabla.
      
        Cuando se reciben, los valores almacenados en una columna
        ENUM se muestran usando el formato de
        mayúsculas/minúsculas usado en la definición de la columna.
        En MySQL 4.1.1, las columnas ENUM pueden
        recibir un conjunto de caracteres y colación. Para colaciones
        binarias o sensibles a mayúsculas/minúsculas, el formato se
        tiene en cuenta al asignar valores a la columna.
      
        Si recibe un valor ENUM en contexto
        numérico, se retorna el índice del valor. Por ejemplo, puede
        recibir valores numéricos de una columna
        ENUM así:
      
mysql> SELECTenum_col+0 FROMtbl_name;
        Si almacena un número en una columna ENUM,
        el número se trata como índice, y el valor almacenado es el
        miembro de la enumeración con ese índice. (Sin embargo, esto
        no funciona con LOAD DATA, que trata toda la
        entrada como cadenas de caracteres.) No es recomendable definir
        una columna ENUM con valores de enumeración
        que parezcan números, ya que esto puede causar confusión. Por
        ejemplo, la siguiente columna tiene miembros de enumeración con
        valores de '0', '1', y
        '2', pero valores de índice
        1, 2, y
        3:
      
numbers ENUM('0','1','2')
        Los valores ENUM se ordenan según el order
        en que se enumeran los mienbros 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.
      
        Si quiere determinar todos los valores posibles para una columna
        ENUM, use SHOW COLUMNS FROM
         y parsee la
        definición de tbl_name LIKE
        enum_colENUM en la segunda columna de
        la salida.
      
Ésta es una traducción del manual de referencia de MySQL, que puede encontrarse en dev.mysql.com. El manual de referencia original de MySQL está escrito en inglés, y esta traducción no necesariamente está tan actualizada como la versión original. Para cualquier sugerencia sobre la traducción y para señalar errores de cualquier tipo, no dude en dirigirse a mysql-es@vespito.com.

