国产探花免费观看_亚洲丰满少妇自慰呻吟_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;  

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石渠县| 拉萨市| 宕昌县| 若羌县| 罗源县| 潞城市| 滕州市| 武胜县| 中阳县| 龙川县| 靖远县| 宽城| 闻喜县| 连城县| 祁门县| 天津市| 当涂县| 连江县| 云南省| 沙河市| 伊通| 北川| 凤阳县| 东源县| 兴文县| 杂多县| 介休市| 辉南县| 五寨县| 将乐县| 吉首市| 聊城市| 合肥市| 南平市| 页游| 肥西县| 汝州市| 廉江市| 资兴市| 灵宝市| 阿克|