MySQL - Как применить LIMIT к GROUP? - PullRequest
1 голос
/ 20 января 2011

Я создаю своего рода блог-движок, в котором посты подразделяются на категории месяц-год , основанные на отметке времени.Я использую следующий запрос:

SELECT MONTHNAME( post_time ) AS
month , YEAR( post_time ) AS year
FROM blog_posts
GROUP BY year,
month
ORDER BY post_time DESC
LIMIT 0 , 10

, который возвращает мне последние десять категорий сообщений, таких как:

December 2010
November 2010
...
etc

Мой вопрос заключается в том, как мне создать запрос для выборки старых / новых категорий?

Если бы у меня был столбец типа * category_id *, я бы мог легко использовать его с LIMIT, но, поскольку у меня есть месяц и год, я застрял.

Очень помог быоценил, это загадка для меня.

Ответы [ 2 ]

1 голос
/ 20 января 2011

У меня вопрос, как мне создать запрос для извлечения старых / новых категорий?

Этот запрос:

SELECT  MONTHNAME(post_time) AS month, YEAR(post_time) AS year
FROM    blog_posts
GROUP BY
        year, month
ORDER BY
        post_time DESC
LIMIT 0, 10

группируется по месяцам, годам и порядкампо времени случайного сообщения в каждом месяце и году.

Поскольку порядок этих случайных сообщений соответствует порядку месяцев и лет, ваши категории будут отображаться в правильном порядке (с недавних пор до ранних).

Обновление:

Для отображения 10 категорий до June 2010:

SELECT  MONTHNAME(post_time) AS month, YEAR(post_time) AS year
FROM    blog_posts
WHERE   post_time < '2010-06-01'
GROUP BY
        year, month
ORDER BY
        post_time DESC
LIMIT 0, 10
0 голосов
/ 20 января 2011

Если у блогов_постов есть category_id

SELECT MONTHNAME( post_time ) AS
month , YEAR( post_time ) AS year
FROM blog_posts
GROUP BY year,
month
ORDER BY category_id DESC
LIMIT 0 , 10
...