【发布时间】:2011-11-22 10:13:24
【问题描述】:
我的价值观如下:
1.1.2
9.1
2.2
4
1.2.3.4
3.2.14
3.2.1.4.2
.....
我需要使用 mysql 对这些值进行排序。这个的数据类型是 varbinary(300)。
所需的输出将类似于:
1.1.2
1.2.3.4
2.2
3.2.1.4.2
3.2.14
4
9.1
查询是:
select version_number from table order by version_number asc
它没有给出正确的排序顺序。
这个期望的输出是:
1.1.2
1.2.3.4
2.2
3.2.1.4.2
3.2.14
4
9.1
版本号最多为 20 位(如 1.2.3.4.5.6.7.8.9.2.34),甚至更多。没有特定的最大尺寸,标准版本就像上面提到的那样。
【问题讨论】:
-
您将这些存储为什么类型?
-
按升序排列,您希望
1.2.13或1.2.2哪个最先出现? -
您能否发布您的输出并指出问题(实际与期望)?
-
大多是把这个version_number存储在Varchar2中,所以不能像这样进行排序。
-
每个组件是否有最大已知尺寸?您能否将标准化版本(例如
011.023.005而不是11.23.5)存储在单独的列中仅用于排序目的?