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

Existe-t-il un classement utf8_unicode_cs ?

Je suis tombé sur le même problème et après quelques recherches sur Google, il semble que MySQL ne l'inclut pas. Pour "le simuler", comme vous le dites,

1) Pour garantir la sensibilité à la casse dans la base de données :définissez la colonne de la table sur utf8_bin classement
Cela permet :

  • SELECT strict :SELECT "Joe" ne retournera PAS les lignes avec "joe" / "joE" / "jOe" / etc
  • index UNIQUE strict :une colonne avec un index UNIQUE traitera les différences de casse comme des valeurs différentes. Par exemple, si un classement utf8_unicode_ci est utilisé, l'insertion de "Joe" sur une table qui contient déjà "joe" déclenchera une erreur "Duplicate key". Si ut8_bin est utilisé, l'insertion de "Joe" fonctionnera correctement.

2) Pour obtenir le bon ordre dans les résultats :ajoutez le classement à la requête SQL :

SELECT ... ORDER BY column COLLATE utf8_unicode_ci