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

MYSQL
Access数据库的存储上限
一步一步教你网站同步镜像(转载)
MYSQL大数据导入
在同一台机器上运行多个 MySQL 服务
Mysql服务器的启动与停止(一)
Mysql服务器的启动与停止(二)
MySQL新手入门指南--快速参考
从MySQL得到最大的优化性能
数据库的用户帐号管理基础知识
如何恢复MYSQL的ROOT口令
MySQL优化全攻略-相关数据库命令
MySQL 常用命令
MySQL 管理
MySQL SQL 语法参考
SQL 优化
MySQL 索引分析和优化
Advanced SQL Injection with MySQL
ADODB 入门
MySQL 数据库函数库
使用distinct在mysql中查询多条不重复记录值的解决办法

MYSQL 中的 mysql 按中文字段排序


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