Um ENUM é um objeto string cujo valor
          normalmente é escolhido de uma lista de valores permitidos
          que são enumerados explicitamente na especificação da
          coluna na criação da tabela.
        
          O valor pode ser a string vazia ("") ou
          NULL sob certas circunstâncias:
        
              Se você inserir um valor inválido em um
              ENUM (isto é, uma string que não
              está presente na lista de valores permitidos), a string
              vazia é inserida no lugar como um valor especial de erro.
              Esta string pode se diferenciar de um string vazia 'norma'
              pelo fato de que esta string tem uo valor numérico 0.
              Veremos mais sobre este assunto mais tarde.
            
              Se um ENUM é declarado
              NULL, NULL é
              também um valor permitido para a coluna, e o valor padrao
              é NULL. Se um ENUM
              é decalarado NOT NULL, o valor padrão
              é o primeiro elemento da lista de valores permitidos.
            
Cada enumeração tem um índice:
Valores da lista de elementos permitidos na especificação da coluna são números começados com 1.
              O valor de índice de uma string vazia que indique erro é
              0. Isto significa que você pode usar a seguinte
              instrução SELECT para encontrar
              linhas nas quais valores ENUM
              inválidos forma atribuidos:
            
mysql> SELECT * FROM nome_tabela WHERE col_enum=0;
              O índice de um valor NULL é
              NULL.
            
          Por exemplo, uma coluna especificada como ENUM("um",
          "dois", "três") pode ter quqlquer um dos valores
          mostrados aqui. O índice de cada valor também é mostrado:
        
| Valor | Indice | 
| NULL | NULL | 
| "" | 0 | 
| "um" | 1 | 
| "dois" | 2 | 
| "três" | 3 | 
Uma enumeração pode ter um máximo de 65535 elementos.
          A partir da versão 3.23.51 espaços extras são
          automaticamente deletados dos valores ENUM
          quando a tabela é criada.
        
          O caso da letra é irrelevante quando você atribui valores a
          um coluna ENUM. No entanto, valores
          recuperados posteriormente da coluna terá o caso de letras de
          acordo com os valores que foram usados para especificar os
          valores permitidos na criação da tabela.
        
          Se você recupera um ENUM em um contexto
          numérico, o indice do valor da coluna é retornado. Por
          exemplo, você pode recuperar valores numéricos de uma coluna
          ENUM desta forma:
        
mysql> SELECT col_enum+0 FROM nome_tabela;
          Se você armazena um número em um ENUM, o
          número é tratado como um índice, e o valor armazenado é o
          membro da enumeração com este índice. (No entanto, este
          não irá funcionar com LOAD DATA, o qual
          trata todas as entradas como strings.) Não é aconselhável
          armazenar números em uma string ENUM pois
          pode tornar as coisas um pouco confusas.
        
          Valores ENUM são armazenados de acordo com
          a ordem na qual os membros da enumeração foram listados na
          especificação da coluna. (Em outras palavras, valores
          ENUM são ordenados de acordo com o seus
          números de índice.) Por exemplo, "a" vem
          antes de "b" para ENUM("a",
          "b"), mas "b" vem antes de
          "a" para ENUM("b", "a").
          A string vazia vem antes de strings não-vazias, e valores
          NULL vem antes de todos os outros valores
          de enumeração. Para evitar resultados inesperados,
          especifique a lista ENUM em ordem
          alfabética. Você também pode usar GROUP BY
          CONCAT(col) para ter certeza de que as colunas
          estão ordenadas alfabeticamente e não pelo índice
          numérico.
        
          Se você quiser obter todos os valores possíveis para uma
          coluna ENUM, você deve usar: SHOW
          COLUMNS FROM nome_tabela LIKE nome_coluna_enum e
          analizar a definição de ENUM na segunda
          coluna.
        
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

