直接对汉字对应的字段使用order by,查询的结果并不按照所预期的按照汉字对应拼音进行排列
出现这个问题的原因是因为MySQL在查询字符串时是大小写不敏感的,在编绎MySQL时一般以ISO-8859字符集作为默认的字符集,因此在比较过程中中文编码字符大小写转换造成了这种现象。
解决方法:
修改查询语句:在查询语句的order by
部分使用 CONVERT
函数。
select * from student u order by CONVERT(u.name USING GBK) asc;