Tốt hơn là sử dụng utf8_bin
đối chiếu bởi vì, mặc dù không thể xảy ra trong UTF-8, trong trường hợp chung, về mặt lý thuyết là có thể (chẳng hạn như xảy ra với UTF-16) đối với giống nhau chuỗi được đại diện bởi khác nhau mã hóa, mà so sánh nhị phân sẽ không hiểu nhưng đối chiếu nhị phân sẽ. Như được ghi lại trong Bộ ký tự Unicode
:
Do đó, nếu so sánh liên quan đến các cột này sẽ luôn luôn phân biệt chữ hoa chữ thường, bạn nên đặt đối chiếu của cột thành utf8_bin
(để chúng vẫn phân biệt chữ hoa chữ thường ngay cả khi bạn quên chỉ định khác trong truy vấn của mình); hoặc nếu chỉ các truy vấn cụ thể phân biệt chữ hoa chữ thường, bạn có thể chỉ định rằng utf8_bin
đối chiếu nên được sử dụng bằng COLLATE
từ khóa:
SELECT * FROM table WHERE id = 'iSZ6fX' COLLATE utf8_bin