Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

MySQL 怎样做中文排序?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

先确定业务要拼音、笔画还是自定义顺序,再选择目标字符集支持的排序规则或显式排序键。可用 SHOW COLLATION 核对规则,不能默认所有中文顺序都相同。

讲清原理

现代 MySQL 有面向中文的 utf8mb4 排序规则,具体结果需要实际词表验证。多音字、人名和行业词可能需要业务拼音字段,字符集转换不能代替规则。

例子与易错点

用代表姓名和多音字做排序测试,并加唯一键稳定并列顺序。不要为排序把所有原文转换成 GBK,可能丢失不可表示的字符。

以下是 MySQL 8.4 中文排序规则的三个姓名样本。

CREATE TABLE names_demo (name VARCHAR(20) CHARACTER SET utf8mb4);
INSERT INTO names_demo VALUES ('张'), ('李'), ('王');
SELECT name FROM names_demo ORDER BY name COLLATE utf8mb4_zh_0900_as_cs;

相关题 · 第 117 题、第 113 题

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。