当mysql使用utf8、utf8mb4编码时,如果直接使用 order by 对中文字段排序,排序结果不正确。
需要将字段先转换成gbk编码再排序:
CONVERT(expr USING transcoding_name)
CONVERT()提供一个在不同字符集之间转换数据的方法。
mybtis-plus:
orderByAsc("convert(" + User.NAME + " using gbk)")
sql:
SELECT * FROM user ORDER BY CONVERT(`name` USING gbk)