Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Que COLLATE devo definir para usar todos os tipos de idiomas possíveis?

  • Primeira escolha (MySQL 8.0):utf8mb4_0900_ai_ci
  • Segunda opção (a partir de 5.6):utf8mb4_unicode_520_ci
  • Terceira opção (5.5+):utf8mb4_unicode_ci
  • Antes da 5.5, você não pode lidar com todos os chineses, nem Emoji:utf8_unicode_ci

Os números referem-se aos padrões Unicode 9.0, 5.20 e (sem número) 4.0.

Nenhum agrupamento é bom para classificar todos línguas ao mesmo tempo. Espanhol, alemão, turco, etc, têm peculiaridades que são incompatíveis. Os agrupamentos acima são os 'melhores' de uso geral disponíveis.

utf8mb4 lida com todos os caracteres ainda especificados pelo Unicode (incluindo Cherokee, Klingon, Cuneiform, Bizantino, etc.)

Se o português for o foco:

Veja https://pt.stackoverflow.com/ e Agrupamento MySQL para português .

Estude isso para 8.0 ou este para pré 8.0 para ver qual agrupamento utf8/utf8mb4 mais se aproxima de classificar o português 'corretamente'. Talvez utf8mb4_danish_ci ou utf8mb4_de_pb_0900_ai_ci seria melhor.

(Senão, vá com as 'escolhas' listadas acima.)