Det är bättre att använda utf8_bin
sammanställning eftersom, även om det inte är möjligt i UTF-8, i det allmänna fallet är det teoretiskt möjligt (såsom händer med UTF-16) för samma sträng som ska representeras av olika kodningar, som en binär jämförelse inte skulle förstå men en binär sammanställning skulle. Som dokumenterats under Unicode-teckenuppsättningar
:
Därför, om jämförelser som involverar dessa kolumner kommer alltid vara skiftlägeskänslig bör du ställa in kolumnens sortering till utf8_bin
(så att de förblir skiftlägeskänsliga även om du glömmer att ange något annat i din fråga); eller om bara vissa frågor är skiftlägeskänsliga kan du ange att utf8_bin
sortering ska användas med COLLATE
nyckelord:
SELECT * FROM table WHERE id = 'iSZ6fX' COLLATE utf8_bin