首页 > 数据库 > MySQL > 正文

mysql 按中文字段排序

2024-07-24 12:44:05
字体:
来源:转载
供稿:网友
如果这个问题不解决,那么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);

您可能感兴趣的文章:

让MySQL支持中文排序的实现方法Mysql select in 按id排序实现方法MYSQL 关于两个经纬度之间的距离由近及远排序mysql如何根据汉字首字母排序MySQL查询优化:连接查询排序浅谈MySQL查询优化:连接查询排序limit(join、order by、limit语句)介绍mysql的中文数据按拼音排序的2个方法MySQL中按照多字段排序及问题解决mysql 关键词相关度排序方法详细示例分析PHP 中执行排序与 MySQL 中排序mysql自定义排序顺序语句mysql中文排序注意事项与实现方法MySQL关于字符串中数字排序的问题分析
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表