Андрей
Высший разум
(425818)
5 лет назад
А что мешает сортировать сразу по статусу без UNION?
SELECT * FROM comments WHERE id_seller = '$id' ORDER BY status <> 2, id DESC
или
SELECT *, status <> 2 AS ordr FROM comments WHERE id_seller = '$id' ORDER BY ordr, id DESC
В твоём же случае последний ORDER BY относится не ко второй части UNION, а ко всему UNION после объединения данных.
Попробуй:
(SELECT * FROM comments WHERE id_seller = '$id' AND status = 2 ORDER BY id DESC)
UNION
(SELECT * FROM comments WHERE id_seller = '$id' AND status <> 2 ORDER BY id DESC)
может быть и сработает.
SELECT * FROM comments WHERE id_seller = '$id' AND status = 2 ORDER BY id DESC
UNION
SELECT * FROM comments WHERE id_seller = '$id' AND status <> 2 ORDER BY id DESC
Задача: получить сначала комментарии со статусом 2!, а потом все остальные и отсортировать их по убыванию. Если убрать ORDER BY, то все сработает, правда сортировка нужна по убыванию.