Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quel COLLATE dois-je définir pour utiliser toutes sortes de langues possibles ?

  • Premier choix (MySQL 8.0) :utf8mb4_0900_ai_ci
  • Deuxième choix (à partir de la version 5.6) :utf8mb4_unicode_520_ci
  • Troisième choix (5.5+) :utf8mb4_unicode_ci
  • Avant la version 5.5, vous ne pouvez pas gérer tout le chinois, ni les emoji :utf8_unicode_ci

Les numéros font référence aux normes Unicode 9.0, 5.20 et (pas de numéro) 4.0.

Aucun classement n'est bon pour trier tous langues en même temps. L'espagnol, l'allemand, le turc, etc. ont des bizarreries incompatibles. Les classements ci-dessus sont les "meilleurs" à usage général disponibles.

utf8mb4 gère tous les caractères encore spécifiés par Unicode (y compris cherokee, klingon, cunéiforme, byzantin, etc.)

Si l'accent est mis sur le portugais :

Voir https://pt.stackoverflow.com/ et Collation MySQL pour le portugais .

Étudiez cela pour 8.0 ou ceci pour la version antérieure à 8.0 pour voir quelle collation utf8/utf8mb4 se rapproche le plus du tri "correctement" du portugais. Peut-être utf8mb4_danish_ci ou utf8mb4_de_pb_0900_ai_ci serait mieux.

(Sinon, optez pour les 'choix' listés ci-dessus.)