小编典典

utf8_bin与utf_unicode_ci

mysql

我的桌子网站

Website_Name//column name
Google
Facebook
Twitter
Orkut
Frype
Skype
Yahoo
Wikipedia

我我使用utf8_bin排序规则,所以我在网站中搜索Wikipedia的查询是

Select Website_Name from Website where lower(Website_Name)='wikipedia'

如果我使用utf8_unicode_ci,则我在网站中搜索Wikipedia的选择查询为

Select Website_Name from Website where Website_Name='wikipedia'

现在,我想知道哪种排序规则最合适,具体取决于以下查询


阅读 329

收藏
2020-05-17

共1个答案

小编典典

这取决于您的需求。

utf8_bin整理比较了它们的Unicode纯粹基于字符串的代码点值。如果所有代码点都具有相同的值,则字符串相等。但是,当您使用具有不同组成的字符串来组合标记(组成与分解)或规范上等效但不具有相同代码点值的字符时,此方法将分崩离析。在某些情况下,使用utf8_bin将导致您期望的字符串不匹配。从理论上讲,这utf8_bin是最快的,因为没有对字符串应用Unicode规范化,但这可能不是您想要的。

utf8_general_ci使用特定于语言的规则应用Unicode规范化,并且不区分大小写地比较字符串。utf8_general_cs这样做相同,但是比较区分大小写的字符串。

2020-05-17