ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

mysql order by 中文排序

2026/8/26 16:30:52 拓冰建站 浏览量
mysql order by 中文排序 前言在MySQL中我们经常会对一个字段进行排序查询但进行中文排序和查找的时候对汉字的排序和查找结果往往都是错误的。 这种情况在MySQL的很多版本中都存在。如果这个问题不解决那么MySQL将无法实际处理中文。 出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的在编绎MySQL时一般以ISO-8859字符集作为默认的字符集因此在比较过程中中文编码字符大小写转换造成了这种现象。表结构修改对于包含中文的字段加上binary属性使之作为二进制比较例如将name char(10)改成name char(10) binary。源码编译编译MySQL时使用–with–charsetgbk参数这样MySQL就会直接支持中文查找和排序了默认的是latin1。也可以用extra-charsetsgb2312,gbk来加入多个字符集。查询语句使用CONVERT函数UTF8默认校对集是utf8_general_ci, 它不是按照中文来的。你需要强制让MySQL按中文来排序。SELECT * FROM student ORDER BY CONVERT(name USING gbk);