Indizes können nur verwendet werden, wenn die Sortierung des Ausdrucks mit der indizierten Spalte übereinstimmt.
Wenn COERCIBILITY
des Ausdrucks kleiner ist als der der Spalte (also 2
), wird die Sortierung der Spalte in die des Ausdrucks umgewandelt und der Index wird nicht verwendet.
Normalerweise haben Literale COERCIBILITY
von 4
und Benutzervariablen die von 3
, das sollte also kein Problem sein.
Wenn Sie jedoch verschiedene Sortierungen in einem JOIN
mischen oder UNION
, die Besetzungsreihenfolge ist nicht garantiert.
In diesem Fall sollten Sie der Spalte, die Sie umwandeln, eine explizite Sortierung bereitstellen (höchstwahrscheinlich möchten Sie latin1
umwandeln zu UTF8
), und dies sollte die Sortierung der Spalte sein, in die Sie umwandeln:
SELECT *
FROM utf_table
JOIN latin_table
ON utf_column = latin_column COLLATE UTF8_GENERAL_CI