Есть данные в базе:
id, title
1 - заголовок
2 - заголовок 2
3 - заголовок 3
Как отсортировать таким образом, чтобы получить:
2 - заголовок 2
1 - заголовок
3 - заголовок 3
К сожалению, ASC
и DESC
в данном случаи не подходят.
Подскажите, куда копать?
Добавляете отдельный столбец в котором указываете индексы для нужного порядка сортировки. Сортируете, при выводе, по нему.
id, title, sortOrder
1, заголовок, 2
2, заголовок 2, 1
3, заголовок 3, 3
Запрос:
select * from table order by sortOrder
Попробуйте так:
select id, title
from table
order by case title when "Заголовок 2" then 1
when "Заголовок" then 2
else 3 end
В результате сначала пойдут первыми строки с "Заголовком 2", потом строки с "Заголовком", потом с оставшимся "Заголовком 3".
Пример на sqlfiddle.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Подскажите хорошие практики для проектирования БД и дальнейшего поиска по фильтрам