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

301 天前
 gosky
比如有下面几行:




要求返回:




utf8mb4_unicode_ci 已经试过了,不符合需求
1118 次点击
所在节点    问与答
11 条回复
Morii
301 天前
数量不大的话 case when
LeegoYih
301 天前
1.加一列阿拉伯数字
2.维护一个中文和阿拉伯数字映射表,join order
BiChengfei
301 天前
自定义排序
ORDER BY FIELD(field ,str1 ,str2 ,str3 ,str4……) DESC
tool2d
301 天前
写个函数把一二三替换成全角的123,这个在二进制编码上市连续的,就可以直接排序。
SpMozzi
301 天前
select crc32(字段),字段 from t order by 1
SpMozzi
301 天前
select * from a;
+--------+
| number |
+--------+
| 三 |
| 一 |
| 二 |
+--------+
select crc32(number),number from a order by 1;
+---------------+--------+
| crc32(number) | number |
+---------------+--------+
| 2416838398 | 一 |
| 2878220375 | 二 |
| 3922902618 | 三 |
+---------------+--------+
hsfzxjy
301 天前
@SpMozzi crc32 这个什么原理啊?
SpMozzi
301 天前
@hsfzxjy crc32 主要是对数据库的数据做简单校验,可以快速校验数据
pkoukk
301 天前
有 一万三千八百 这样的数么?
有的话建议你再搞一列存阿拉伯数字吧
adoal
301 天前
#9 问的是关键。只是一位中文数字,还是中文数,做法完全不一样的。
hsfzxjy
301 天前
@SpMozzi 那 crc 的结果为什么就是汉字数字的序呢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/956537

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX