Есть данные в базе:
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.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите хорошие практики для проектирования БД и дальнейшего поиска по фильтрам