0 条
LOGO
Yutuo

MySQL中文字编码utf8mb4中Collation说明

在MySQL中,之前大家都用UTF8编码,不过最新的MySQL放弃了对UTF8的更新,UTF8只支持三位字符。新追加的utf8mb4支持四位UTF8

下面对utf8mb4常用的Collation进行比较。其实Collation只是影响字符集的排序和查询。这次主要介绍以下几个Collation

  • utf8mb4_general_ci
  • utf8mb4_unicode_ci
  • utf8mb4_unicode_520_ci
  • utf8mb4_bin

utf8mb4_general_ci

不区分大小写,不区分一些四位字符,区分日语的清音、浊音和半浊音

A = a 不区分
🍣 = 🍺 不区分
は≠ぱ≠ば 区分

utf8mb4_unicode_ci

不区分大小写,不区分一些四位字符,不区分日语的清音、浊音和半浊音

A = a 不区分
🍣 = 🍺 不区分
は≠ぱ≠ば 不区分

utf8mb4_unicode_520_ci

不区分大小写,区分四位字符,不区分日语的清音、浊音和半浊音

A = a 不区分
🍣 = 🍺 区分
は≠ぱ≠ば 不区分

utf8mb4_bin

因为是以二进制比较,所以区分大小写,区分四位字符,区分日语的清音、浊音和半浊音

A = a 区分
🍣 = 🍺 区分
は≠ぱ≠ば 区分

总结

打个比较,如果我们使用utf8mb4_unicode_ci,那么我们使用下面这两个SQL查询的结果是一样的。

select test_table where col = 'A';
select test_table where col = 'a';

所以说,需要严格匹配的字符串字段(比如ID字段),我们应该使用utf8mb4_bin
对于不区别大小写等字段我们可以使用其它的Collation

发表我的评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址