Явно указать порядок сортировки для запроса MySQL? - PullRequest
17 голосов
/ 18 октября 2011

Если у меня есть:

ID | Title
1  | Shirt
2  | CD
3  | Cap
4  | Mp3
5  | Badge

Если я хочу отсортировать по этому порядку: 4, 2, 5, 3,1.Есть ли способ сделать SQL-запрос, где вы явно указываете это?Что-то вроде:

select * from TABLE order by ID(4,2,5,3,1) ??

Ответы [ 3 ]

27 голосов
/ 18 октября 2011

На самом деле, вы были удивительно близки. Это просто как:

select * from TABLE order by field(ID,4,2,5,3,1)
5 голосов
/ 18 октября 2011

Вы можете использовать CASE в ORDER BY в качестве элементарной таблицы поиска:

select *
from your_table
order by
    case id
        when 4 then 1
        when 2 then 2
        when 5 then 3
        when 3 then 4
        when 1 then 5
    end
3 голосов
/ 18 октября 2011
select * from TABLE order by ID=1,ID=3,ID=5,ID=2,ID=4;

ВЫ ПОПУЛЯЕТЕ ЭТО И ПОЗВОЛИТЕ МНЕ О ВАШЕМ СОМНЕНИИ.

...