По-добре е да използвате utf8_bin
съпоставяне, защото, въпреки че не е възможно в UTF-8, в общия случай е теоретично възможно (както се случва с UTF-16) за същото низ, който да бъде представен от различен кодировки, които бинарно сравнение не би разбрало, но бинарно съпоставяне би могло. Както е документирано в Набори от символи в Unicode
:
Следователно, ако сравненията, включващи тези колони, ще винаги бъдете чувствителни към малки и големи букви, трябва да зададете съпоставянето на колоната на utf8_bin
(така че те ще останат чувствителни към малки букви, дори ако забравите да посочите друго в заявката си); или ако само определени заявки са чувствителни към малки и големи букви, можете да посочите, че utf8_bin
съпоставянето трябва да се използва с помощта на COLLATE
ключова дума:
SELECT * FROM table WHERE id = 'iSZ6fX' COLLATE utf8_bin