我有一个 WordPress 数据库,其中包含一个名为 events 的自定义帖子类型,其中包含事件的开始日期和结束日期的自定义字段。我想在列表中输出所有这些事件,其中即将发生的事件按升序排列,其余按降序排列。
我试图从这个答案复制代码,但我似乎无法正确 - 所有帖子都按升序排序:MySQL conditional ORDER BY ASC/DESC for date column
这是我现在的代码:
SELECT p.post_title, m.meta_value
FROM wp_posts as p, wp_postmeta as m
WHERE p.ID = m.post_id
AND p.post_type = "events"
AND m.meta_key = "startdate"
AND p.post_status = "publish"
ORDER BY m.meta_value ASC,
CASE m.meta_value WHEN m.meta_value > DATE(NOW()) THEN m.meta_value END ASC,
CASE WHEN m.meta_value < DATE(NOW()) THEN m.meta_value END DESC
LIMIT 10