Twoim „problemem” jest utf8_unicode_ci porównanie. To porównywanie wykonuje „rozwijanie znaków”, co oznacza, że umlauty i ich znaki podstawowe są traktowane jako takie same nawet w = porównanie :
A = Ä
O = Ö
...
Drugi przykład na tej stronie podręcznika mySQL wyjaśnia problem:9.1.7.8. Przykłady efektu sortowania
Musisz albo przełączyć się na sortowanie, które rozróżnia znak umlautowy i podstawowy (np. utf8_general_ci lub utf8_general_bin ) lub przełącz się na inne zestawienie tylko podczas porównywania:
select * from users where username like 'Björn' COLLATE utf8_general_ci;
jest to oczywiście wolniejsze, ponieważ konwersja sortowania musi być wykonana dla każdego rekordu podczas zapytania.