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

J'obtiens des résultats doubles de la requête mysql lors de l'utilisation de caractères internationaux, c'est-à-dire Å/Ä=A &Ö=O,

Votre "problème" est le utf8_unicode_ci collation. Cette collation fait des "expansions de caractères", ce qui signifie que les trémas et leurs caractères de base sont traités comme le même même dans un = comparaison :

A = Ä
O = Ö
...

Le deuxième exemple sur cette page de manuel mySQL explique le problème :9.1.7.8. Exemples de l'effet du classement

Ce que vous auriez à faire est soit de passer à un classement qui fait la distinction entre le tréma et le caractère de base (par exemple, utf8_general_ci ou utf8_general_bin ) ou passer à un classement différent uniquement lors de la comparaison :

select * from users where username like 'Björn' COLLATE utf8_general_ci;

c'est évidemment plus lent, car la conversion du classement doit être effectuée pour chaque enregistrement lors de la requête.