我正在处理下面的代码:
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结果是这样的:
year | dates
-------------------------------------------------------------------
2016 | 11:121,122-12:117,118
-------------------------------------------------------------------
2015 | 1:128-12:138-2:139-3:129-4:130-5:131-6:132-7:133-8:119-9:134
-------------------------------------------------------------------除了日期订单外,其他都很好。正如你在第二行看到的,它是1,12,2,3,等等……而它应该是1、2、3、4等。它以字符串而不是数字的形式进行排序。
如何解决?
发布于 2017-04-07 01:12:30
我已经找到了答案:我可以通过将第一行更改为以下内容进行排序:
SELECT tbl.y YEAR, group_concat(month_posts **ORDER BY tbl.m DESC** SEPARATOR '-') dateshttps://stackoverflow.com/questions/43261703
复制相似问题