MySQL 怎样做中文排序?
查看完整题解
参考回答
直接回答
先确定业务要拼音、笔画还是自定义顺序,再选择目标字符集支持的排序规则或显式排序键。可用 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 题
这道题,你掌握得怎么样?
掌握程度由你主动标记,阅读和收藏不会自动改变状态。