Явным образом укажите порядок сортировки для запроса mysql?

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

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) ??

Ответы

Ответ 1

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

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

Ответ 2

Вы можете использовать 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

select * from TABLE order by ID=1,ID=3,ID=5,ID=2,ID=4;

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