Indexy lze použít pouze tehdy, když se řazení výrazu shoduje s řazením v indexovaném sloupci.
Pokud je výraz COERCIBILITY je nižší než u sloupce (tj. 2 ), řazení sloupce je přetypováno na řazení výrazu a index se nepoužívá.
Normálně mají literály COERCIBILITY z 4 a uživatelské proměnné 3 , takže by to neměl být problém.
Pokud však v JOIN smícháte různá řazení nebo UNION , pořadí obsazení není zaručeno.
V tomto případě byste měli poskytnout explicitní řazení pro sloupec, který odesíláte (s největší pravděpodobností chcete přenést latin1 na UTF8 ), a toto by mělo být seřazení sloupce, do kterého odesíláte:
SELECT *
FROM utf_table
JOIN latin_table
ON utf_column = latin_column COLLATE UTF8_GENERAL_CI