Как отсортировать разные группы по разным методам?
Есть таблица с категориями. У категорие есть `parent_id` мне нужно достать все категории и отсортировать их по `name` исходя из значения `parent_id`.
Если `parent_id` = 51 или 52 или 0 то `name` ASC иначе `name` DESC.
Я могу это решить через CASE но это решение показалось мне громоздким тем более что категорий может быть больше. Есть ли в sql оператор по типу in_arra() PHP и могу ли я как-то заюзать его с IF. Заранее благодарен.
В SQL есть сортировке SORT по направлению, а не по значению соседней таблицы. Сделайте сортироку на php или на чем вы потом обрабатываете полученные данные. В SQL есть оператор IN - может вам поможет.
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