• mysql 汉字排序


    我的MySQL数据库字符集用的UTF-8,此为环境。

    做项目时需要用到对查出来的数据按首字母排序,事实上也就是对汉字的拼音按照a--z的顺序进行升序降序排列。

    本以为是简单的order by XXX  asc/desc,哪知道最后结果并没有按照想象中的排序。

    百度才知道,使用utf-8字符集时,汉字排序并不是按照字母顺序的。

    select * from (
    select "三军" as name
    union
    select "步拿拿"
    union
    select "微服务"
    union
    select "预估工时"
    )
    a
    order by a.name asc;
    

    预计结果

    步拿拿
    三军
    微服务
    预估工时
    

    但实际结果为

    解决方式有两个:

    1.修改数据库字符集,把utf-8改为gbk。

    2.修改sql语句:把select * from user order by name desc 改为 select * from user order by convert(name using gbk) desc

    这样排序的字段就按照字母顺序排列了。

    select * from (
    select "三军" as name
    union
    select "步拿拿"
    union
    select "微服务"
    union
    select "预估工时"
    )
    a
    order by convert(a.name using gbk)  asc;
    
  • 相关阅读:
    uva 1605 building for UN ——yhx
    uva 120 stacks of flapjacks ——yhx
    uva133-S.B.S.
    Uva10082 WERTYU -S.B.S.
    Quicksum-S.B.S.
    NOIP2014提高组 DAY1 -SilverN
    NOIP2013普及组 -SilverN
    uva 1354 Mobile Computing ——yhx
    UVa 11292 Dragon of Loowater
    UVa 839 Not so Mobile
  • 原文地址:https://www.cnblogs.com/po-shi/p/12966488.html
Copyright © 2020-2023  润新知