mysql 根據漢字首字母排序

2021-07-27 13:16:45 字數 943 閱讀 9175

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

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

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

select * from tablename order

by birary(name) asc ;

tablename:資料庫表名

name:排序欄位名

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

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

select * from tablename where

1=1order

by convert( name using gbk ) collate gbk_chinese_ci asc

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

tablename:資料庫表名

name:排序欄位名

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

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

漢字首字母

在很多軟體中,輸入拼音的首寫字母就可以快速定位到某個詞條。比如,在鐵路售票軟體中,輸入 bj 就可以定位到 北京 怎樣在自己的軟體中實現這個功能呢?問題的關鍵在於 對每個漢字必須能計算出它的拼音首字母。gb2312漢字編碼方式中,一級漢字的3755個是按照拼音順序排列的。我們可以利用這個特徵,對常用...

mysql擷取漢字首字母

刪除存在的函式 drop function if exists fristpinyin 建立函式 delimiter create function firstpinyin p name varchar 255 returns varchar 255 charset utf8 determinist...

react native按照漢字首字母排序

問題討論詳情 問題描述 js中有乙個string的內建函式 string.prototype.localecompare 返回乙個數字來指示乙個參考字串是否在排序順序前面或之後或與給定字串相同。1 a.nickname.localecompare b.nickname,zh hans cn 在rea...