需求:中文欄位按拼音首字母排序(如「北京、上海、廣州」→ 「北京、廣州、上海」)。
SELECT areaName FROM area
ORDER BY CONVERT(areaName USING gbk) COLLATE gbk_chinese_ci ASC;
CONVERT(str USING gbk):將字串按 gbk 編碼重新解讀。MySQL 內部按字節碼排序,gbk 編碼下漢字按拼音順序排列(一級漢字區)。COLLATE gbk_chinese_ci:指定 gbk 中文排序規則(不區分大小寫),確保按拼音排序而非字節碼序。CHAR/VARCHAR/TEXT 存儲中文的列。utf8mb4_zh_0900_as_cs 等更完善的 Unicode 排序規則,無需轉編碼。pinyin VARCHAR(100) 存首字母或全拼,建索引排序,最快最準。