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

choix du classement de table pour les caractères universels

  • ...general_ci est simple. Il n'assimile pas les combinaisons à 2 caractères (comme avec une marque sans espacement) à l'équivalent à un seul caractère.

  • ...unicode_520_ci vient de la version Unicode 5.20, la dernière version disponible lorsque MySQL l'a récupéré. Il gère des choses comme avoir une commande pour Emoji, ce que les versions précédentes n'avaient pas.

  • Avec MySQL 8.0, le classement préféré est utf8mb4_0900_ai_ci , basé sur Unicode 9.0.

  • ...<language>_ci gère les variations trouvées dans la langue donnée. Par exemple, devrait ch et ll en espagnol être traité comme des "lettres" et trier entre cz et d , et lz et m .

  • Pour une utilisation générale, n'utilisez pas ...general_ci , utilisez la dernière version dérivée d'Unicode. Pour les situations spécifiques à une langue, choisissez l'un des autres classements.

  • Je sais comment (ou même si) le chinois et l'arabe sont triés différemment dans les différentes collations. Cependant, je vois ...persion_ci , donc je soupçonne qu'il y a un problème.

  • Utilisez utf8mb4 , pas utf8 , d'autant plus que vous avez besoin du chinois.