mysql 中文首字母排序

mysql  order by 中文排序

在查询语句的 order by 部分使用 CONVERT 函数

在MySQL数据库中使用UTF-8的编码进行排序会出现不按照中文拼音的顺序排序,UTF8 默认校对集是 utf8_general_ci ,它不是按照中文来的,convert()这个函数可以实现临时编码,需要强制让MySQL按中文来排序。

SELECT * FROM 表名 order by CONVERT (字段 USING gbk) COLLATE gbk_chinese_ci ASC

mysql 子查询排序

根据子查询排序后根据中文首字母排序(mysql 5.7 需添加 limit(999999999) ,否则子查询无效)。

例:SELECT * FROM ( SELECT * FROM 表名` WHERE 条件 ORDER BY 字段 ASC limit(999999999) ) a

ORDER BY CONVERT (字段 USING gbk) COLLATE gbk_chinese_ci ASC


先排序后分组(mysql 5.7需设置 mysqld.cnf
(sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION) )
SELECT * FROM ( SELECT * FROM `表名` WHERE 条件 ORDER BY 字段 desc ) a GROUP BY 字段

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值