"Vấn đề" của bạn là utf8_unicode_ci
đối chiếu. Sự đối chiếu đó thực hiện "mở rộng ký tự", nghĩa là Umlauts và các ký tự cơ sở của chúng được coi là giống nhau ngay cả trong một =
sự so sánh :
A = Ä
O = Ö
...
Ví dụ thứ hai trên trang hướng dẫn sử dụng mySQL này giải thích sự cố: 9.1.7.8. Ví dụ về Hiệu ứng của Đối chiếu
Những gì bạn sẽ phải làm là chuyển sang đối chiếu phân biệt giữa âm sắc và ký tự cơ sở (ví dụ:utf8_general_ci
hoặc utf8_general_bin
) hoặc chỉ chuyển sang đối chiếu khác khi thực hiện so sánh:
select * from users where username like 'Björn' COLLATE utf8_general_ci;
điều này rõ ràng là chậm hơn, vì chuyển đổi đối chiếu phải được thực hiện cho từng bản ghi trong khi truy vấn.