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

如何在MySQL中按Trip ID末尾的日期倒序排序查询结果?

解决方案

首先你原查询里的date字段在表结构中不存在,表中对应的日期字段是thedate。如果thedate的值和Trip ID末尾的日期一致,直接修改查询用这个字段排序是最高效的方式:

$resultSet = $mysqli->query("Select tripid from college order by thedate desc");

如果thedate字段不可用,必须从tripid的后缀日期来排序,需要根据你Trip ID的具体格式选择对应的SQL函数提取日期部分:

常见格式处理示例

  • 格式示例:TripID后缀为8位纯数字日期(如TRIP00120240520)
    使用RIGHT()提取最后8位,再转成日期类型排序:

    $resultSet = $mysqli->query("Select tripid from college order by STR_TO_DATE(RIGHT(tripid, 8), '%Y%m%d') desc");
    
  • 格式示例:TripID后缀为带分隔符的日期(如TRIP001-2024-05-20)
    提取最后10位带分隔符的日期字符串:

    $resultSet = $mysqli->query("Select tripid from college order by STR_TO_DATE(RIGHT(tripid, 10), '%Y-%m-%d') desc");
    
  • 格式示例:TripID用分隔符分隔日期(如TRIP_001_20240520)
    使用SUBSTRING_INDEX()提取最后一段日期部分:

    $resultSet = $mysqli->query("Select tripid from college order by STR_TO_DATE(SUBSTRING_INDEX(tripid, '_', -1), '%Y%m%d') desc");
    

注意:如果数据量较大,优先使用表中已有的thedate字段排序,避免对每个tripid做字符串解析,提升查询性能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 12:47:11