MySQL數據庫UTF8編碼使用漢字拼音第一個字母排序的方法
今天做網站時遇到了這樣一個問題,有一個標簽數據庫,在管理標簽時想按標簽列的漢字拼音的第一個字母排序,這樣人工查找的時候就很快可以看到;
於是找了很多資料,發現很多難點
針對UTF8編碼對漢字支持不好的確定也比較明顯的顯示出來了
但是UTF8編碼這個標准還是國際化的,將來我覺得也是個趨勢
解決這個問題的方法還是希望大家在建立數據庫的時候使用UTF8 gbk_chinese_ci 這樣對漢字支持會好一點;
下面使用這樣的SQL查詢語句:
select * from tag order by convert(tag USING gbk) COLLATE gbk_chinese_ci limit 100
解釋:從tag裡查找頭100條記錄 按tag字段的第一個漢字的字母排序;
UTF8 默認校對集是 utf8_general_ci , 它不是按照中文來的。需要強制讓MySQL按中文來排序。
其它方法就是多建一個字段
使用PHP漢字字典類的方法,把第一個漢字的拼音翻譯過來就可以了,這個方法和PHP類在下一文來分析一下;