L'explication la plus probable est que la colonne nodo
est le type de données caractère et character_set_connection
ne correspond pas au jeu de caractères spécifié pour la colonne.
Si la colonne est définie avec latin1
jeu de caractères, essayez :
WHERE nodo = CONVERT(@sitio USING latin1)
À titre de démonstration, avec utf8, la sortie d'explication ne montre aucun index disponible :
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
Mais avec latin1, la sortie d'explication montre que l'index est disponible (et est utilisé) :
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