You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress的SQL查询中对季节学期字符串按时间排序?

解决WordPress中学期字符串的时间排序问题

数据库里的学期以Spring 2020、Fall 2018这类字符串存储,默认SQL排序会按字母顺序排列,没法满足时间顺序的需求。你可以通过给学期分配排序权重,结合年份排序来实现目标,修改后的查询代码如下:

$wpdb->prepare("SELECT DISTINCT pm.meta_value FROM {$wpdb->postmeta} pm
        LEFT JOIN {$wpdb->posts} p ON p.ID = pm.post_id
        WHERE pm.meta_key = '%s' 
        AND pm.meta_value IS NOT NULL
        AND p.post_status = 'publish'
        ORDER BY 
            SUBSTRING_INDEX(pm.meta_value, ' ', -1) ASC,
            CASE 
                WHEN pm.meta_value LIKE 'Spring%' THEN 1
                WHEN pm.meta_value LIKE 'Summer%' THEN 2
                WHEN pm.meta_value LIKE 'Fall%' THEN 3
            END ASC", "semester")

代码说明:

  • SUBSTRING_INDEX(pm.meta_value, ' ', -1):提取字符串中最后一个空格后的内容(也就是年份部分),按年份升序排列。
  • CASE语句:给不同学期分配排序优先级,确保同一年份内按Spring→Summer→Fall的时间顺序排列。

执行后输出的排序结果会是:

Spring 2018
Summer 2018
Fall 2018
Spring 2019
Summer 2019
Fall 2019

内容的提问来源于stack exchange,提问作者IUWPDEV

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 07:23:17