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();