2021-06-22

【MySQL】簡體中文的 編碼與排序關係

參考資料 ----

MySQL Chinese, Japanese, and Korean Character Sets

一图弄懂ASCII、GB2312、GBK、GB18030编码

 

探索了正體中文的排序,好奇...那簡體中文呢?

 

MySQL 對簡體中文在 UTF8 時的排序似乎看不出規律性

一层楼, 一枕奇, 七侠五义, 万花楼, 三侠五义, 三国志, 三国演义, 三字经, 世说新语, 东周列国志, 九章算术, 乾隆下江南, 二刻拍案惊奇...

中間突然冒出了筆劃很多的 "乾隆下江南"


因為大陸是漢語拼音,所以若以 gb18030 編碼排序,看似是以拼音字母順序排列

-- 按漢語拼音排序
SELECT * FROM 資料表 ORDER BY CONVERT(欄位名 USING gb18030) 

結果如下:

八段锦, 八美图, 白圭志, 白虎通, 百家姓, 北里志, 北梦琐言, ...

"" 開頭的書名被排到後面去了!整個排序跟上面完全不同!


如果仿照正體中文的排序法呢?

SELECT * FROM 資料表 ORDER BY CONVERT(SUBSTR(欄位名,1,1) USING gb18030), BINARY 欄位名

結果如下:

八段锦, 八美图, 白圭志, 白虎通, 百家姓, 北梦琐言, 北里志, ...

沒有很大差異,僅 北梦琐言, 北里志 前後對調

 

相關筆記 ----

【MySQL】查詢結果按正體中文排序



沒有留言:

張貼留言