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