Index kan endast användas när uttryckets sortering matchar den i den indexerade kolumnen.
Om uttryckets COERCIBILITY
är lägre än kolumnen (det vill säga 2
), castas kolumnens sortering till uttryckets och indexet används inte.
Normalt har bokstaver COERCIBILITY
av 4
och användarvariabler som för 3
, så detta borde inte vara ett problem.
Men om du blandar olika sorteringar i en JOIN
eller UNION
, castordningen är inte garanterad.
I det här fallet bör du ange explicit sortering till kolumnen du castar (sannolikt vill du casta latin1
till UTF8
), och detta bör vara sammanställningen av kolumnen du castar till:
SELECT *
FROM utf_table
JOIN latin_table
ON utf_column = latin_column COLLATE UTF8_GENERAL_CI