国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

mysql中文拼音排序實現方法

2024-07-24 12:39:15
字體:
來源:轉載
供稿:網友

由于mysql對中文的支持不好,所以我們想要對中文進行按拼音排序也是一個不小不大的困難,今天我們利用convert函數來實現,不管什么編碼都可以進行拼音進行排序,有需要的朋友參考一下.

對于包含中文的字段加上"binary"屬性,使之作為二進制比較,例如將"name char(10)"改成"name char(10)binary".

如果你使用源碼編譯MySQL,可以編譯MySQL時使用 --with--charset=gbk 參數,這樣MySQL就會直接支持中文查找和排序了,默認的是latin1,也可以用 extra-charsets=gb2312,gbk來加入多個字符集.

如果不想對表結構進行修改或者重新編譯MySQL,也可以在查詢語句的 order by 部分使用 CONVERT 函數.

比如,代碼如下:

select * from mytable order by CONVERT(chineseColumnName USING gbk); 

UTF8 默認校對集是 utf8_general_ci,它不是按照中文來的,你需要強制讓MySQL按中文來排序,代碼如下:

  1. select * from core_vender_info order by convert(vender_abbrev USING gbk) COLLATE gbk_chinese_ci 

實例,代碼如下:

  1. create table `test111cnnet` (                                  
  2.           `bid` int(4) unsigned not null auto_increment,        
  3.           `namerean` varchar(20) character set gbk default null
  4.           primary key (`id`)                                  
  5.         ) ;  --Vevb.com 

保存部份數據,代碼如下:

  1. insert into `test1` (`id`, `namerean`) values('李'); 
  2. insert into `test1` (`id`, `namerean`) values('鄧'); 
  3. insert into `test1` (`id`, `namerean`) values('站'); 

排序查詢,代碼如下:

  1. mysql>select namerean fromtest111cnnetorder by namerean; 
  2.  
  3. 鄧(d) 
  4. 李(l) 
  5. 站(z) 

這樣看上去mysql中文排序是沒有任問題,因為我們的namerean是gbk編碼,所以結果是滿意的,那么如果是uft-8就不行了,所以我們構造了一條,代碼如下:

  1. select namerean from test111cnnet order by convert(namerean using gb2312) asc;  

這樣,不管當前字段為什么編碼,他都能很好的按中文拼音進行排序.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鄯善县| 满城县| 洪湖市| 东乌珠穆沁旗| 兴和县| 荔波县| 鸡泽县| 东丰县| 徐水县| 饶河县| 屯门区| 郯城县| 平谷区| 山东省| 荆州市| 鲁山县| 濮阳县| 浮山县| 恭城| 北碚区| 越西县| 龙门县| 荆州市| 法库县| 井冈山市| 张掖市| 金坛市| 隆德县| 兴安盟| 浦东新区| 隆昌县| 察雅县| 山丹县| 平安县| 台东市| 潞西市| 柳河县| 枣庄市| 黄石市| 北碚区| 天柱县|