在回答这个问题时,我不确定自己没有设法找到足够的答案。
使用二进制排序规则utf8_bin和不区分大小写的utf8_general_ci排序规则之间的实际区别是什么?
utf8_bin
utf8_general_ci
我可以看到三个:
两者的排序顺序不同;_bin的排序顺序可能会将任何变音符放在字母表的末尾,因为比较了字节值(对吗?)
_bin
仅区分大小写的搜索 _bin
没有A = Ä平等_bin
A = Ä
还有其他需要注意的差异或副作用吗?
参考:
无法解决该问题的类似问题:
如果字符不同(二进制大小写或变音符号不同),二进制排序规则将完全按照C语言中的strcmp()进行字符串比较。缺点是排序顺序不自然。
非自然排序顺序的一个示例(如“ binary”所示)是:A,B,a,b在这种情况下,自然排序顺序将是例如:A,a,B,b(对sme字母的小写和大写字母进行排序彼此相邻)
二进制排序规则的实际优势是它的速度,因为字符串比较非常简单/快速。在一般情况下,带有二进制的索引可能不会产生预期的排序结果,但是对于完全匹配,它们可能很有用。