最も可能性の高い説明は、列nodo
です。 は文字データ型であり、character_set_connection
列に指定された文字セットと一致しません。
列がlatin1
で定義されている場合 キャラクターセット、試してみてください:
WHERE nodo = CONVERT(@sitio USING latin1)
デモンストレーションとして、utf8を使用して、explain出力に使用可能なインデックスがないことを示します:
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
しかし、latin1では、explain出力はインデックスが利用可能である(そして使用されている)ことを示しています:
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