WordPress中MySQL查询结果正序排列问题求助
解决WordPress数据库按月统计文章的排序问题
你的查询核心问题在于排序条件错误:原语句使用ORDER BY id DESC,是按文章ID倒序排列,导致最新月份的统计结果排在最前面。要实现月份正序,只需修改排序规则即可。
修正后的查询语句(方法一)
直接按格式化后的月份字段升序排列:
SELECT COUNT( p.id ) post_count, DATE_FORMAT( post_date, '%Y-%m' ) post_month FROM `wp_posts` p WHERE post_status = 'publish' AND post_type = 'post' AND post_title = 'Germany' GROUP BY post_month ORDER BY post_month ASC LIMIT 3;
修正后的查询语句(方法二)
基于原始日期字段的年、月升序排列,若post_date有索引,性能更优:
SELECT COUNT( p.id ) post_count, DATE_FORMAT( post_date, '%Y-%m' ) post_month FROM `wp_posts` p WHERE post_status = 'publish' AND post_type = 'post' AND post_title = 'Germany' GROUP BY post_month ORDER BY YEAR(post_date) ASC, MONTH(post_date) ASC LIMIT 3;
执行结果
两种方法都会返回你需要的正序统计结果:
51 2023-01 130 2023-02 46 2023-03
内容的提问来源于stack exchange,提问作者SQLNoob18
相关产品推荐
相关产品推荐

