Il tuo "problema" è il utf8_unicode_ci
collazione. Quel confronto fa "espansioni di caratteri", il che significa che le dieresi e i loro caratteri di base sono trattati come gli stessi anche in un =
confronto :
A = Ä
O = Ö
...
Il secondo esempio in questa pagina di manuale di MySQL spiega il problema:9.1.7.8. Esempi dell'effetto di confronto
Quello che dovresti fare è passare a un confronto che distingua tra dieresi e carattere di base (ad es. utf8_general_ci
o utf8_general_bin
) o passare a un confronto diverso solo durante il confronto:
select * from users where username like 'Björn' COLLATE utf8_general_ci;
questo è ovviamente più lento, perché la conversione delle regole di confronto deve essere eseguita per ogni record durante la query.