Как отсортировать данные в БД?

Подскажите, как из этого запроса:

SELECT a.author_id, a.status, u.username, u.user_colour FROM my_table a LEFT JOIN my_table_users u ON u.user_id = a.author_id ORDER BY a.time DESC


отсортировать записи, в которых status равен 3 или 4, чтобы выводились последние?

Так выглядит таблица
my_table:
author_id | status
0 | 2
1 | 4
2 | 3
  • Вопрос задан
  • 2426 просмотров
Решения вопроса 1
iRusel
@iRusel Автор вопроса
Добавил в запрос следующее:

ORDER BY status ASC, time DESC

Таким образом сначала сортируются записи по status (1-4) после по времени.
Спасибо всем кто писал.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Сделайте два SELECT. В одном - WHERE status <> 3 AND status <> 4, в другом — наоборот WHERE status = 3 OR status = 4. В оба SELECT'а к выбираемым столбцам добавьте еще один, например sort:
SELECT 1 AS sort, a.author_id, a.status, u.username, u.user_colour FROM ...

Так, чтобы в одной выборке было одно значение sort, в другой - другое (1 и 2).
А потом объедините обе выборки UNION'ом, приправив все это нужными сортировками (сначала по полю sort, а внутри уже по дате)
Ответ написан
@IceJOKER
Web/Android developer
order by fieldName desc
где fieldName - названия поля, по которому нужна сортировка, а desc - по убыванию, можно еще asc - по возрастанию
Ответ написан
Ваш ответ на вопрос

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

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