MySql8.0下中文字符按照拼音排序的方法


在MySQL数据中,如果中文字段使用的utf8编码,排序规则是不是支持按照拼音进行排序的,比如常用的 utf8mb4_general_ci  和  utf8mb4_unicode_ci 排序,如果我的字段想按照中文拼音排序应该怎么办呢,可以在sql语句中指定 order by 排序方式来排序


SELECT
  * 
FROM
  table_name 
WHERE
  1 = 1 
ORDER BY
CONVERT(`field_name` USING gbk) COLLATE gbk_chinese_ci  ASC

对于我常用的thinkPHP开发框架来说,可以用以下方法实现:





$list=(new ModelName)
->where($where)
->orderRaw("CONVERT(`real_name` USING gbk) COLLATE gbk_chinese_ci ASC")
->select();


如果有更好的方法请点击页面右下方的添加微信按钮联系我,对我进行指导