Mysql 按中文首字母排序

2021-09-25 16:17:44 字數 740 閱讀 8276

在開發中,總會遇到各種**問題,排序的時候要按照中文的首字母排序,這裡就需要我們根據字元的編碼集將漢字排序。參考

在mysql資料庫中,存在很多種字符集儲存方式,比如utf8、latin1等,所以對排序也要根據不同字符集處理。

1:如果資料庫表字段的字元編碼是latin1_swedish_ci

select * from tablename order by birary(name) asc ;

1tablename:資料庫表名 

name:排序欄位名 

birary不是函式,是型別轉換運算子,它用來強制它後面的字串為乙個二進位制字串,可以理解為在字串比較的時候區分大小寫

2:如果資料庫表字段的字元編碼是utf8_general_ci(常用)

select * from tablename where 1=1 order by convert( name using gbk ) collate gbk_chinese_ci asc

1首先,對name欄位進行gbk編碼,然後,對編碼後的內容根據gbk_chinese_ci進行整理排序。這樣得到的結果,英文是排在中文前面的,而且是根據拼音排序的。

tablename:資料庫表名 

name:排序欄位名 

convert:提供乙個在不同字符集之間轉換資料的方法。 

collate:collate是乙個演算法語句,主要用於對字元進行排序,經常出現在表的建立語句中。sql語句裡面的collate主要用於對字元進行排序。

中文首字母 排序

因專案需要對通訊錄中的聯絡人進行排序,需要對中文字元進行拼音轉換。其實這個轉換並沒有想象中的那麼難 因為我們只是把中文轉為拼音首字母而已,比如 王 轉換為字母w就可以了,而不需要轉換為完整的拼音wang 對此,我們找到了乙個簡便的解決辦法 乙個老外 中簽名的作者叫george 用c語言寫了乙個pin...

將陣列按中文首字母排序

排序函式 function sortname arr,eachname let resultarray arr.sort function comparefunction param1,param2 return resultarray arr為傳入的需要排序的陣列,那麼eachname是什麼呢?我...

pinyin中文首字母排序

pinyin中文首字母排序 子木瀟雨 因 專案需要對通訊錄中的聯絡人進行排序,需要對中文字元進行拼音轉換。其實這個轉換並沒有想象中的那麼難 因為我們只是把中文轉為拼音首字母而已,比如 王 轉換為字母w就可以了,而不需要轉換為完整的拼音wang 對此,我們找到了乙個簡便的解決辦法 乙個老外 中簽名的作...