1. 程式人生 > >mysql根據漢字首字母排序的方法

mysql根據漢字首字母排序的方法

實現mysql中根據漢字首字母排序的sql語句:
 

程式碼示例:
select areaname from area order by convert(areaname using gbk) collate gbk_chinese_ci asc

說明:
areaname為列名 
area為表名

mysql 中文欄位排序( 按拼音首字母排序) 的查詢語句

1,如果資料表tbl的某欄位name的字元編碼是latin1_swedish_ci
 

程式碼示例:
select * from `tbl` order by birary(name) asc ;

2,如果資料表tbl的某欄位name的字元編碼是utf8_general_ci
 

程式碼示例:
select name from `tbl` where 1 order by convert( name using gbk ) collate gbk_chinese_ci asc
$orderby="convert(`group` using gbk) collate gbk_chinese_ci,displayorder,navid"

phpmysql採用utf-8編碼時實現按照文字欄位的首字母的拼音順序進行排序
最近做了個投票系統,要把那些候選人按照首字母排序

如果是gbk編碼的,可以直接對欄位進行order by ,但是純utf-8環境下不行。
 

程式碼示例:

gbk編碼:
select * from candi

date where del_flag=$state order by name

utf-8編碼:
select * from candidate where del_flag=$state order by convert(candidate_name using gbk)
 

另外的方法:字典類方法,也是提高效率的方法,為了達到更快更效率的查詢,需要另外再建立一個索引列,並在索引列中插入標籤字第一個字母或者是拼音。
定義拼音字典,封裝類