как этого добиться в mysql / mariadb - порядок и сортировка - PullRequest
0 голосов
/ 06 января 2020
---------------------------
|Status  |Application Date|
|New     |2019-01-02      |
|New     |2019-01-01      |
|Updated |2019-01-15      |
|Deleted |2019-01-20      |
|Updated |2019-01-16      |
---------------------------

1. Sort in-order from New,Updated, and Deleted
 a. Sort by New ASC - to see the first entry for first come first serve
 b. Sort by Updated Desc - to see the latest update first
 c. Sort by Deleted Desc - see the latest deleted

Я пробовал 3 запроса и объединения, но вы можете заказать их вместе не для запроса.

1 Ответ

4 голосов
/ 06 января 2020

Попробуйте эту логику c:

SELECT *
FROM yourTable
ORDER BY
    FIELD(Status, 'New', 'Updated', 'Deleted'),
    CASE WHEN Status = 'New' THEN UNIX_TIMESTAMP(app_date) ELSE -1.0*UNIX_TIMESTAMP(app_date) END;

Первый уровень сортировки помещает новые записи перед обновленными записями и обновленные записи перед удаленными записями. Второй уровень сортирует по возрастанию по дате для новых записей и по убыванию для всех остальных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...