当前位置: 首页 > 图文教程 > 数据库 > MYSQL > mysql 按中文字段排序

MYSQL
提高MySQL中数据装载效率
mysql 前几条记录语句之(limit)
php 读取mysql数据库三种方法
mysql sql语句总结
mysql 日期和时间函数
MySQL 文本文件的导入导出数据的方法
MySQL不支持InnoDB的解决方法
mysql 维护常用命令
MySQL JOIN之完全用法
mysql 复制记录实现代码
远程访问MySQL数据库的方法小结
MySQL 1303错误的解决方法(navicat)
MySQL 创建主键,外键和复合主键的语句
MySQL 加密/压缩函数
Mysql 本地计算机无法启动 mysql 服务 错误 1067:进程意外终止。
通过MySQL全文搜索实现中文的相关搜索

MYSQL 中的 mysql 按中文字段排序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 47 ::
收藏到网摘: n/a

在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);