Mysql естественный порядок

голоса
1

У меня есть столбец:

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 ТБ, 1,5 ТБ, 2 ТБ 3 ТБ появится в конце.

Как это можно сделать?

Задан 01/06/2014 в 01:15
источник пользователем
На других языках...                            


2 ответов

голоса
0
SELECT 
  `columnName` 
FROM
  `Table` 
ORDER BY RIGHT(`columnName`, 2) ASC,
  `columnName` ASC 
Ответил 01/06/2014 в 01:17
источник пользователем

голоса
0

Если у вас есть только TBи GB:

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

Это заказывает первый по ГБ. Второй преобразует столбец в количество и сорта по количеству.

Ответил 01/06/2014 в 01:18
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more