http://blog.s777n.net/orderbychinesefieldutf8/comment-page-2/

2010-08-24 17:36 by TomorrowMan | 分类: 技术, 数据库

如果在mysql中使用字符集为utf8,想要对中文字段用order by chinese_field 排序,那么出来的顺序并不是按照拼音排序的,不是我们想要的结果。

解决方法:

1、改变字符编码为gbk。

DD

2、不想改变编码的话,可以用如下方法:

对中文字段使用gbk编码排序:

SELECT * FROM table ORDER BY CONVERT( chinese_field USING gbk ) ;

当然这需要你安装mysql时安装了gbk字符集,不然会报错:#1115 - Unknown character set: 'gbk'

试了好像有不对的

mysql> select * from ywang order by convert(tname using gbk);

+------+--------+

| id   | tname  |

+------+--------+

|    2 | 啊    |

|    2 | 啊    |

|    1 | 测试 |

|    1 | 测试 |

|    4 | 云    |

|    4 | 云    |

|    3 | 打    |

|    3 | 打    |

+------+--------+

8 rows in set (0.01 sec)

上面的原因是插入数据client段使用字符集问题

另一例:

mysql> select * from yy order by convert(tname using gbk);

+------+-------+

| id   | tname |

+------+-------+

|    2 | 啊    |

|    1 | 才    |

|    4 | 他    |

|    3 | 一    |

+------+-------+

4 rows in set (0.01 sec)

mysql> show create table yy;

+-------+--------------------------------------------------------------------------------------------------------------------------+

| Table | Create Table                                                                                                             |

+-------+--------------------------------------------------------------------------------------------------------------------------+

| yy    | CREATE TABLE `yy` (

`id` int(11) DEFAULT NULL,

`tname` varchar(50) DEFAULT NULL

) ENGINE=MyISAM DEFAULT CHARSET=utf8 |

+-------+--------------------------------------------------------------------------------------------------------------------------+

1 row in set (0.00 sec)

mysql> select * from yy;

+------+-------+

| id   | tname |

+------+-------+

|    1 | 才    |

|    2 | 啊    |

|    3 | 一    |

|    4 | 他    |

+------+-------+

4 rows in set (0.00 sec)

***************************

对于改字符集的方法,加一个库默认字符集gbk,建表,然后排序,得到的就是拍好的

************************************

一些相关语句

1、使用SHOWCHARACTERSET语句列出数据库中可用的字符集:

mysql>SHOWCHARACTERSET;2、要想列出一个字符集的校对(Collation)规则,使用SHOW COLLATION语句。

例如,要想查看latin1(“西欧ISO-8859-1”)字符集的校对规则,使用下面的语句查找那些名字以latin1开头的校对规则:

mysql>SHOW COLLATIONLIKE'latin1%';3.查看数据表的字符集

mysql>showcreatetablemytable;

这个命令也可以查看建这个表的SQL语句。

******************************

有空还是要看一下字符集的问题

mysql8中文排序_mysql中utf8编码的中文字段按拼音排序相关推荐

  1. mysql数据库sql汉字数字排序_MYSQL数据库UTF8编码使用汉字拼音第一个字母排序的方法...

    MYSQL数据库UTF8编码使用汉字拼音第一个字母排序的方法 今天做网站时遇到了这样一个问题,有一个标签数据库,在管理标签时想按标签列的汉字拼音的第一个字母排序,这样人工查找的时候就很快可以看到: 于 ...

  2. mysql录入foreigen错误_Python MySQLdb 使用utf-8 编码插入中文数据问题

    最近帮伙计做了一个从网页抓取股票信息并把相应信息存入MySQL中的程序. 使用环境: Python 2.5 for Windows MySQLdb 1.2.2 for Python 2.5 MySQL ...

  3. tinyxml 读取文本节点_在Windows下使用TinyXML-2读取UTF-8编码包含中文字符的XML文件...

    TinyXML-2 是一个用 C++ 开发的小巧.高效的 XML 解析工具,它在 GitHub 网站上的链接为: https://github.com/leethomason/tinyxml2 .它的 ...

  4. mysql gbk编码 字节数,mysql中utf-8编码数据库转换成GBK编码的问题

    摘要 腾兴网为您分享:mysql中utf-8编码数据库转换成GBK编码的问题,之了课堂,易信,一折包邮,星球联盟等软件知识,以及七日杀,草莓软件,装修施工站,桔子会,桌面切换,看小说神器,酷派应用商店 ...

  5. utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件

    utf-8编码的中文注释 在 sourceinsight 显示乱码的解决方法---utf8 转gb2312插件 参考文章: (1)utf-8编码的中文注释 在 sourceinsight 显示乱码的解 ...

  6. mysql按笔划排序_mysql中怎么按姓氏笔画排序

    展开全部 项目中有时候需要按照汉字的拼音排序,比如联系人列表.矿物分类等,有的还需62616964757a686964616fe78988e69d8331333363386232要按拼音字母从A到Z分 ...

  7. 中文在unicode中的编码范围

    喜欢古典小说的 可以关注  头条号 古典小说  公众号 古典小说网 喜欢编程的     可以关注 头条号 讨厌编程 以前写过一篇贴子是写中文在unicode中的编码范围unicode中文范围,但写的不 ...

  8. mysql韩语排序_MySQL汉字字段按拼音排序

    我们的MySQL使用latin1的默认字符集,也就是说,对汉字字段直接使用GBK内码的编码进行存储,当需要对一些有汉字的字段进行拼音排序时(特别涉及到类似于名字这样的字段时),默认无法通过order ...

  9. java对一个集合中的汉字字段根据拼音排序

    刚刚做了一个对集合中某个字段根据拼音排序的方法,根据大牛们的思路,我自己总结了一个让我们这些菜鸟一看就懂的方法,希望能帮助到大家 1.在实体类中实现Comparable接口并且并复写compareto ...

最新文章

  1. C语言易错题--求最大公约数与最小公倍数之和(辗转相除法)
  2. MySQL主从同步失败
  3. 网页里显示访问的那台服务器,在web服务器中把网页放在那里,才能被访问
  4. linux qt检测u盘热插拔,【QT】动态监测U盘插拔
  5. golang计算单个协程占用内存
  6. WiFi安全之WPA介绍
  7. NSObject中的performSelector用法简介
  8. eval() php,js-eval编码,js-eval解码
  9. JavaSE:如何设置/获取您自己的文件和目录属性
  10. Linux 命令之 killall 命令-使用进程的名称来杀死一组进程
  11. python求加速度_如何利用Python 为自然语言处理加速度
  12. docker pull mysql_docker 拉取mysql数据库
  13. C语言程序设计 基础知识点
  14. 如何使用ffmpeg下载腾讯课堂视频(亲自多次尝试有效)
  15. gitlab runner 注册失败问题
  16. Linux操作系统安全加固总结
  17. 微信游戏奇迹暖暖选取服务器失败,奇迹暖暖微信登录授权失败
  18. 时空人工智能概念特点和核心能力
  19. Pytnon画一个小猪佩奇
  20. Ceph -存储部署 ;

热门文章

  1. spring boot整合mybatis步骤
  2. CSDN在文章头部添加目录
  3. messenger android 4.,AndroidIPC机制(4)-Messenger
  4. 100 计算机网络概述小结
  5. 网页 html 全图片排版,HTML5-网页排版划分
  6. Cpp 对象模型探索 / delete 运算符内部调用过程分析
  7. 启明云端分享|ESP32 AT 相关资源从哪里获得?以及经常会遇到的AT相关问题
  8. aix服务器端口配置文件,aix配置(IP,子网掩码,DNS)网络接口的三种方式
  9. 代码检查规则:Python语言案例详解
  10. 容器安全最佳实践入门