SQL排序几个月,为什么我在一月之后得到十二月?

时间:2017-02-10 14:17:49

标签: sql wordpress sql-order-by group-concat

我已经得到了这个查询,这几乎完美无缺:

SELECT tbl.y year, group_concat(month_posts SEPARATOR '-') dates
    FROM (
        SELECT YEAR(p.post_date) y, MONTH(p.post_date) m, concat(MONTH(p.post_date), ':', group_concat(p.id ORDER BY p.post_date ASC)) month_posts
        FROM prt_posts p    
        WHERE (p.post_status = 'publish' OR p.post_status = 'future') 
            AND p.post_type = 'EVENT'
            AND p.post_date <= DATE('2016-12-31 00:00:00')
        GROUP BY y, m
        ORDER BY y, m ASC
     ) tbl
GROUP BY tbl.y
ORDER BY tbl.y DESC

输出为年份,日期格式为:

月:ID,ID,ID-月:ID,ID,ID-等

我的问题是,在结果上,我在12月份之后出现了12月。

enter image description here

正如你在第二行所看到的那样,我得到了1:128,12:138等,所以1(jan)然后是2(Dec)。为什么呢?

1 个答案:

答案 0 :(得分:0)

目前我的解决方案是将ORDER BY tbl.m添加到第一行:

SELECT tbl.y year, group_concat(month_posts ORDER BY tbl.m SEPARATOR '-') dates