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

MYSQL
MYSQL教程:如何选择正确的数据列类型
MYSQL教程:表达式操作符和数据类型转换
MYSQL教程:索引和查询优化程序
MYSQL教程:数据列类型与查询效率
MYSQL教程:查询优化之有效加载数据
MYSQL教程:查询优化之调度和锁定
MYSQL教程:服务器优化和硬件优化
MYSQL教程:数据目录
MYSQL教程:数据表在系统中表现形式
MYSQL教程:数据表最大尺寸限制
MYSQL教程:状态文件和日志文件
MYSQL教程:调整MySQL数据目录位置
MYSQL教程:数据库安全管理
MYSQL教程:MYSQL启动与退出以及链接故障恢复
MYSQL教程:MySQL用户帐号管理
MYSQL教程:日志文件管理
MYSQL教程:MySQL的一些优化配置
MYSQL教程:优化服务器参数设置
MYSQL教程:运行多个MySQL服务器
MYSQL教程:MySQL服务器镜像配置

MYSQL 中的 mysql 按中文字段排序


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 92 ::
收藏到网摘: 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);