我尝试使用 UTF-8 和 Latin1 字符集创建 mysql 表。当我使用 Latin1 时,会使用索引,而当我使用 UTF-8 时,选择/限制记录时不会使用索引。我的字符集是否缺少某些内容导致发生这种情况?
Cheers
Ke
仅当表达式的排序规则与索引列上的排序规则匹配时才能使用索引。
如果表达式的COERCIBILITY
低于柱的值(即2
),列的排序规则将转换为表达式的排序规则,并且不使用索引。
通常情况下,文字有COERCIBILITY
of 4
和用户变量3
,所以这应该不是问题。
但是,如果您在一个中混合不同的排序规则JOIN
or UNION
,不保证施法顺序。
在这种情况下,您应该为您正在转换的列提供显式排序规则(最有可能的是,您想要转换latin1
to UTF8
),这应该是您要投射到的列的排序规则:
SELECT *
FROM utf_table
JOIN latin_table
ON utf_column = latin_column COLLATE UTF8_GENERAL_CI
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)