【发布时间】:2015-02-20 12:58:58
【问题描述】:
我有一个由选择下拉菜单设置的元键,因此用户可以选择 1 到 14 之间的选项,然后保存他们的帖子。我希望帖子按日期从 1 到 14 显示在页面上,但是如果用户在第二天创建一组新帖子,我也希望发生这种情况,因此您每天都有帖子 1 到 14 以该顺序显示..我到目前为止的SQL如下
SELECT SQL_CALC_FOUND_ROWS
wp_postmeta.meta_key,
wp_postmeta.meta_value,
wp_posts.*
FROM wp_posts
INNER JOIN wp_postmeta ON (wp_posts.ID = wp_postmeta.post_id)
WHERE 1=1
AND wp_posts.post_type = 'projectgallery'
AND ( wp_posts.post_status = 'publish'
OR wp_posts.post_status = 'private')
AND (wp_postmeta.meta_key = 'gallery_area' )
GROUP BY wp_posts.post_date asc
ORDER BY CAST(wp_postmeta.meta_value AS UNSIGNED) DESC,
DATE(wp_posts.post_date) desc;
这给了我以下输出通知,即在不同日期输入的帖子按顺序显示为 1 或 3,理想情况下,我希望最新的帖子在 14 点之后直接显示,以便重新开始。数字 14 也不应该是静态的,就好像有人在选择中添加了另一个选项,那么如果删除一个选项,它就会增加和减少。
【问题讨论】:
-
为什么 GROUP BY 在这里做? (不涉及聚合函数。)
-
对不起,这意味着像 GROUP BY (wp_posts.post_date) asc 可能是一个疏忽,但我试图以某种分组顺序保留所有日期
-
即使删除 group by 仍然会留下同样的问题,您有什么建议吗?