Et c'est la réponse. Si vous utilisez utf8_general_ci (en fait cela s'applique à tous les utf_..._[ci|cs] ) la collation puis les signes diacritiques sont ignorés en comarison, ainsi :
SELECT "e" = "é" AND "O" = "Ó" AND "ä" = "a"
Résultats en 1 . Les index utilisent également le classement.
Si vous voulez faire la distinction entre ą et a puis utilisez utf8_bin classement (gardez à l'esprit qu'il fait également la distinction entre les caractères majuscules et minuscules).
Soit dit en passant, le nom et l'âge ne garantissent aucune unicité.