让MySQL支持中文排序的实现方法

 更新时间:2011年11月10日 23:01:11   作者:  
编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较
让MySQL支持中文排序

编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象,一种解决方法是对于包含中文的字段加上"binary"属性,使之作为二进制比较,
例如将"name char(10)"改成"name char(10)binary"。
编译MySQL时使用--with--charset=gbk 参数,这样MySQL就会直接支持中文查找和排序了。

mysql order by 中文 排序

在MySQL中,我们经常会对一个字段进行排序查询,但进行中文排序和查找的时候,对汉字的排序和查找结果往往都是错误的。 这种情况在MySQL的很多版本中都存在。
如果这个问题不解决,那么MySQL将无法实际处理中文。 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。
解决方法:
对于包含中文的字段加上"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按中文来排序。

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

相关文章

  • MySQL不同表之前的字段复制

    MySQL不同表之前的字段复制

    今天小编就为大家分享一篇关于MySQL不同表之前的字段复制,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • mysql中mydumper 和 mysqldump 对比使用

    mysql中mydumper 和 mysqldump 对比使用

    MySQL数据库备份工具有其自带的mysqldump,属于mysql官方的一款备份工具。但是第三方备份工具mydumper凭借优越的特点为更多人所使用。下面就通过测试验证它们之间的备份效率。
    2017-05-05
  • 解决mysql不是内部或外部命令的问题

    解决mysql不是内部或外部命令的问题

    这篇文章主要介绍了解决mysql不是内部或外部命令的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • DB为何大量出现select @@session.tx_read_only 详解

    DB为何大量出现select @@session.tx_read_only 详解

    这篇文章主要给大家介绍了关于DB为何大量出现select @@session.tx_read_only 的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • MYSQL(电话号码,身份证)数据脱敏的实现

    MYSQL(电话号码,身份证)数据脱敏的实现

    在日常开发需求中会经常遇到数据脱敏处理,比如身份证号、手机号,需要使用*进行部分替换显示。这样能使敏感隐私信息在一定程度上得到保护。本文就来介绍一下
    2021-05-05
  • MySQL中where 1=1方法的使用及改进

    MySQL中where 1=1方法的使用及改进

    这篇文章主要介绍了MySQL中where 1=1方法的使用及改进,文章主要通对where 1 = 1的使用及改进展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • mysql大批量插入数据的正确解决方法

    mysql大批量插入数据的正确解决方法

    这篇文章主要介绍了mysql大批量插入数据的正确做法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-09-09
  • MySQL 索引分析和优化

    MySQL 索引分析和优化

    MySQL 索引分析和优化...
    2006-12-12
  • Docker mysql 主从配置详解及实例

    Docker mysql 主从配置详解及实例

    这篇文章主要介绍了Docker mysql 主从配置详解及实例的相关资料,需要的朋友可以参考下
    2016-11-11
  • 一个小时学会MySQL数据库(张果)

    一个小时学会MySQL数据库(张果)

    当前大量的网站使用php语言,那么对应的就是mysql数据库,这里就为大家分享一下MySQL数据库的相关知识,希望大家多多支持脚本之家
    2018-01-01

最新评论