Indexen kunnen alleen worden gebruikt als de sortering van de expressie overeenkomt met die in de geïndexeerde kolom.
Als de uitdrukking COERCIBILITY . is lager is dan die van de kolom (dat is 2 ), wordt de sortering van de kolom gecast naar die van de uitdrukking en wordt de index niet gebruikt.
Normaal gesproken hebben letterlijke waarden COERCIBILITY van 4 en gebruikersvariabelen die van 3 , dus dit zou geen probleem moeten zijn.
Als u echter verschillende sorteringen combineert in een JOIN of UNION , de cast-volgorde is niet gegarandeerd.
In dit geval moet u een expliciete sortering opgeven voor de kolom die u cast (waarschijnlijk wilt u latin1 casten naar UTF8 ), en dit zou de sortering moeten zijn van de kolom waarnaar u cast:
SELECT *
FROM utf_table
JOIN latin_table
ON utf_column = latin_column COLLATE UTF8_GENERAL_CI