Mysql自然顺序

时间:2014-06-01 02:15:20

标签: mysql sql-order-by

我有一栏:

1 TB
1.5 TB
2 TB
3 TB
16 GB
32 GB
64 GB
128 GB
256 GB
320 GB
500 GB
512 GB
750 GB

我希望最后出现1 TB,1.5 TB,2 TB 3 TB。

如何做到这一点?

2 个答案:

答案 0 :(得分:0)

SELECT 
  `columnName` 
FROM
  `Table` 
ORDER BY RIGHT(`columnName`, 2) ASC,
  `columnName` ASC 

答案 1 :(得分:0)

假设您只有TBGB

order by (case when col like '%GB' then 1
               when col like '%TB' then 2
          end),
         col + 0 asc

首先按GB命令。第二个将列转换为数字并按数字排序。