нужны решения с некоторым кодом предела и порядка в MySQL функции запроса - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть такая таблица

|post_date |post      |value    |
---------------------------------
|2019-11-05|post      |text     |
|2019-11-05|post      |text     |
|2019-11-05|post      |text     |
|2019-11-05|post      |text     |
|2019-11-06|post      |text     |
|2019-11-06|post      |text     |
|2019-11-07|post      |text     |
|2019-11-08|post      |text     |
|2019-11-08|post      |text     |
|2019-11-08|post      |text     |
|2019-11-08|post      |text     |
|2019-11-08|post      |text     |
|2019-11-08|post      |text     |

Я пытался выбрать вот так

SELECT post_date, count(*) as post FROM myTable GROUP BY post_date ORDER BY post_date ASC LIMIT 3

она покажет вот так

|post_date |post      |
-----------------------
|2019-11-05|4         |
|2019-11-06|2         |
|2019-11-07|1         |

что мне нужновот так вот

|post_date |post      |
-----------------------
|2019-11-06|2         |
|2019-11-07|1         |
|2019-11-08|6         |

выглядит как результат предела 3 сзади. он получит последние 3 результата из заказа, а не самый старый

1 Ответ

1 голос
/ 07 ноября 2019

Просто оберните ваш текущий запрос в подзапрос, чтобы установить порядок возрастания даты, который вы хотите:

SELECT
    post_date,
    post
FROM
(
    SELECT post_date, COUNT(*) AS post
    FROM myTable
    GROUP BY post_date
    ORDER BY post_date DESC
    LIMIT 3
) t
ORDER BY post_date;

screen capture of demo below

Demo

...