V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gosky
V2EX  ›  问与答

怎么让 mysql 将中文数字排序?

  •  
  •   gosky · 2023-07-13 17:45:38 +08:00 · 1229 次点击
    这是一个创建于 433 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如有下面几行:




    要求返回:




    utf8mb4_unicode_ci 已经试过了,不符合需求
    11 条回复    2023-07-13 19:51:11 +08:00
    28Sv0ngQfIE7Yloe
        1
    28Sv0ngQfIE7Yloe  
       2023-07-13 17:47:55 +08:00
    数量不大的话 case when
    LeegoYih
        2
    LeegoYih  
       2023-07-13 17:49:58 +08:00
    1.加一列阿拉伯数字
    2.维护一个中文和阿拉伯数字映射表,join order
    BiChengfei
        3
    BiChengfei  
       2023-07-13 18:07:49 +08:00
    自定义排序
    ORDER BY FIELD(field ,str1 ,str2 ,str3 ,str4……) DESC
    tool2d
        4
    tool2d  
       2023-07-13 18:13:17 +08:00
    写个函数把一二三替换成全角的123,这个在二进制编码上市连续的,就可以直接排序。
    SpMozzi
        5
    SpMozzi  
       2023-07-13 18:25:12 +08:00
    select crc32(字段),字段 from t order by 1
    SpMozzi
        6
    SpMozzi  
       2023-07-13 18:25:50 +08:00
    select * from a;
    +--------+
    | number |
    +--------+
    | 三 |
    | 一 |
    | 二 |
    +--------+
    select crc32(number),number from a order by 1;
    +---------------+--------+
    | crc32(number) | number |
    +---------------+--------+
    | 2416838398 | 一 |
    | 2878220375 | 二 |
    | 3922902618 | 三 |
    +---------------+--------+
    hsfzxjy
        7
    hsfzxjy  
       2023-07-13 18:32:05 +08:00 via Android
    @SpMozzi crc32 这个什么原理啊?
    SpMozzi
        8
    SpMozzi  
       2023-07-13 18:37:01 +08:00
    @hsfzxjy crc32 主要是对数据库的数据做简单校验,可以快速校验数据
    pkoukk
        9
    pkoukk  
       2023-07-13 18:38:56 +08:00
    有 一万三千八百 这样的数么?
    有的话建议你再搞一列存阿拉伯数字吧
    adoal
        10
    adoal  
       2023-07-13 18:41:50 +08:00
    #9 问的是关键。只是一位中文数字,还是中文数,做法完全不一样的。
    hsfzxjy
        11
    hsfzxjy  
       2023-07-13 19:51:11 +08:00 via Android
    @SpMozzi 那 crc 的结果为什么就是汉字数字的序呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5398 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 01:30 · PVG 09:30 · LAX 18:30 · JFK 21:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.