Ihr "Problem" ist der utf8_unicode_ci
Kollation. Diese Sortierung führt "Zeichenerweiterungen" durch, was bedeutet, dass Umlaute und ihre Basiszeichen selbst in einem =
als gleich behandelt werden Vergleich :
A = Ä
O = Ö
...
Das zweite Beispiel auf dieser mySQL-Handbuchseite erklärt das Problem:9.1.7.8. Beispiele für den Effekt der Sortierung
Dazu müssten Sie entweder auf eine Kollatierung umstellen, die Umlaute und Basiszeichen unterscheidet (z.B. utf8_general_ci
oder utf8_general_bin
) oder wechseln Sie nur während des Vergleichs zu einer anderen Sortierung:
select * from users where username like 'Björn' COLLATE utf8_general_ci;
dies ist offensichtlich langsamer, da die Sortierungskonvertierung für jeden Datensatz während der Abfrage durchgeführt werden muss.