De meest waarschijnlijke verklaring is dat kolom nodo
is karakter datatype, en character_set_connection
komt niet overeen met de tekenset die is opgegeven voor de kolom.
Als de kolom is gedefinieerd met latin1
karakterset, probeer:
WHERE nodo = CONVERT(@sitio USING latin1)
Als demonstratie, met utf8, explain output toont geen index beschikbaar:
EXPLAIN SELECT t.* FROM mytable t WHERE t.foo = CONVERT(@foo USING utf8)
^^^^
id select_type table type possible_keys key key_len ref rows Extra
-- ----------- ----- ---- ------------- ------ ------- ------ ---- -----------
1 SIMPLE t ALL (NULL) (NULL) (NULL) (NULL) 3 Using where
Maar met latin1, explain output laat zien dat index beschikbaar is (en wordt gebruikt):
EXPLAIN SELECT t.* FROM mytable t WHERE t.foo = CONVERT(@foo USING latin1)
^^^^^^
id select_type table type possible_keys key key_len ref rows Extra
-- ----------- ----- ---- ------------- ------ ------- ------ ---- -----------
1 SIMPLE t ref t_ix t_ix 13 const 1 Using where