MySQL 字符集与大小写敏感性解析

MySQL 字符集与大小写敏感性解析

💡 原文中文,约1800字,阅读约需5分钟。
📝

内容提要

在 MySQL 中,utf8 不支持部分 Emoji,而 utf8mb4 支持。默认的 utf8_general_ci 和 utf8mb4_general_ci 排序规则不区分大小写。要实现大小写敏感查询,可以修改排序规则或使用 BINARY 关键字。在 ThinkPHP 中,可通过 whereRaw 方法执行原生查询以确保大小写敏感匹配。

🎯

关键要点

  • MySQL 中的 utf8 不支持部分 Emoji,而 utf8mb4 支持。
  • utf8_general_ci 和 utf8mb4_general_ci 默认不区分大小写。
  • 要实现大小写敏感查询,可以修改排序规则或使用 BINARY 关键字。
  • utf8 是 MySQL 早期的 UTF-8 实现,最多支持 3 字节。
  • utf8mb4 是 MySQL 5.5+ 版本推荐的 UTF-8 编码,最多支持 4 字节。
  • 常见的排序规则包括 utf8_general_ci、utf8mb4_general_ci(不区分大小写)和 utf8_bin、utf8mb4_bin(区分大小写)。
  • 使用 LIKE 或 = 进行查询时,默认是不区分大小写。
  • 可以通过修改排序规则来实现区分大小写的查询。
  • 在 ThinkPHP 中,使用 whereRaw 方法可以执行原生查询以确保大小写敏感匹配。
➡️

继续阅读