MySQL 5.5中可用于日语字符排序的collation(排序规则)有哪些
MySQL 5.5 支持日语正确排序的utf8mb4 collation说明
你遇到的排序错误是因为utf8mb4_general_ci校对规则逻辑极简,仅按Unicode编码值排序,没有适配日语假名的浊/半浊音区分、汉字日语读音排序规则,因此无法得到符合日语使用习惯的排序结果。
MySQL 5.5版本下,utf8mb4字符集可用的日语排序校对规则有以下两类:
utf8mb4_japanese_ci:专门针对日语场景优化的校对规则,完全遵循日语五十音排序逻辑,可正确处理浊音、拗音、常用日语汉字的读音排序,适配性最高,你提到的「児玉」「小松」排序问题使用该规则即可得到正确结果。utf8mb4_unicode_ci:基于Unicode标准实现的通用校对规则,也可正确处理大部分日语排序场景,通用性更强,但对日语特有排序规则的适配度低于utf8mb4_japanese_ci。
使用方式
如果仅单次查询需要指定排序规则,可直接在查询语句中声明:
SELECT * FROM 你的表名 ORDER BY 排序字段 COLLATE utf8mb4_japanese_ci DESC;
如果需要该字段永久使用日语排序规则,可修改字段定义:
ALTER TABLE 你的表名 MODIFY COLUMN 字段名 字段原有类型 CHARACTER SET utf8mb4 COLLATE utf8mb4_japanese_ci;
内容的提问来源于stack exchange,提问作者Fancy
相关产品推荐
相关产品推荐

