@quitting
Junior php

Как отсортировать разные группы по разным методам?

Есть таблица с категориями. У категорие есть `parent_id` мне нужно достать все категории и отсортировать их по `name` исходя из значения `parent_id`.

Если `parent_id` = 51 или 52 или 0 то `name` ASC иначе `name` DESC.

Я могу это решить через CASE но это решение показалось мне громоздким тем более что категорий может быть больше. Есть ли в sql оператор по типу in_arra() PHP и могу ли я как-то заюзать его с IF. Заранее благодарен.
  • Вопрос задан
  • 60 просмотров
Пригласить эксперта
Ответы на вопрос 2
@oldzas
В SQL есть сортировке SORT по направлению, а не по значению соседней таблицы. Сделайте сортироку на php или на чем вы потом обрабатываете полученные данные. В SQL есть оператор IN - может вам поможет.
Ответ написан
@Akina
Сетевой и системный админ, SQL-программист.
ORDER BY CASE WHEN parent_id IN (0,51,52)
              THEN 1
              ELSE 2 
              END ASC,
         CASE WHEN parent_id IN (0,51,52)
              THEN name
              ELSE ''
              END ASC,
         CASE WHEN parent_id IN (0,51,52)
              THEN ''
              ELSE name
              END DESC
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы