这个问题在这里已经有答案了:
utf-8:通用?箱子?unicode(5个答案)
两年前关门了。
我对mysql排序规则及其编码感到困惑,人们通常使用以下三种排序规则之一:
utf8mb\u箱
utf8mb4\u常规\u ci
utf8mb4\U unicode\U 520\U ci
我不明白的是什么时候需要使用这些排序规则,比如,
像这样的名字的表格
[id - name]
它只有来自不同语言的名字和字符,比如法语,德语,拉丁语。
我用这样一个表的排序规则吗 utf8mb_bin
还是坚持 utf8mb4_unicode_520_ci
,
另一方面,博客主题表,例如:
[id - title - subject]
我是否将所有列排序到 utf8mb4_unicode_520_ci
或使用: utf8mb_bin
为了
title utf8mb4_unicode_520_ci
为了 subject
据我所知 utf8mb4_unicode_520_ci
在博客主题中使用了一些情绪化的东西,或者我只是忽略了所有的东西而仅仅使用了它 utf8mb4_unicode_520_ci
全部?
但总的来说,使用这些不同的排序规则有什么意义呢?他们是如何影响我的成绩的 SELECT
询问?
在贝里夫我想知道的是:
对以下各项使用什么排序规则:
姓名
标题
学科
电子邮件
bios
信息
用户名
1条答案
按热度按时间hfwmuf9z1#
你把编码和排序搞混了。
可用字符由编码定义(并且仅由编码定义)。因为utf-8是一种unicode兼容编码,所以您拥有所有字符。mysql的特点是
utf8
编码并没有真正实现utf-8,而只是一个子集,因为它为每个字符分配3个字节,而(到今天为止)有些字符需要4个字节。因此utf8mb4
他出生了。排序规则是一组规则,告诉您如何
WHERE foo = bar
以及ORDER BY foo
工作。你需要问自己:如果我寻找internet
,是否匹配Internet
? 如果您存储法语、德语和拉丁语单词,您很可能不需要二进制排序规则。理想情况下,您需要一个与您将要使用的语言的确切规则,但由于您混合语言,您将不得不选择一个通用排序规则。在阅读utf8mb4\u unicode\u ci和utf8mb4\u unicode\u 520\u ci排序规则之间的差异之后,您可以做出明智的决定。