我的MySQL数据库字符集用的UTF-8,此为环境。
做项目时需要用到对查出来的数据按首字母排序,事实上也就是对汉字的拼音按照a--z的顺序进行升序降序排列。
本以为是简单的order by XXX asc/desc,哪知道最后结果并没有按照想象中的排序。
百度才知道,使用utf-8字符集时,汉字排序并不是按照字母顺序的。
解决方式有两个:
1.修改数据库字符集,把utf-8改为gbk。
2.修改sql语句:把select * from user order by name desc 改为 select * from user order by convert(name using gbk) desc
这样排序的字段就按照字母顺序排列了。