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

MySQL如何按特定值优先排序培训出勤名单查询结果

符合需求的MySQL排序查询方案

没问题,咱们直接来搞定这个排序需求——让美国用户优先展示,同一优先级内再按订阅日期从早到晚排列。

最终查询语句

SELECT ID, NAME, `SUBSCRIPTION DATE`, COUNTRY
FROM your_table_name
ORDER BY 
    -- 给美国用户设置更高优先级,0排在1前面
    CASE WHEN COUNTRY = 'USA' THEN 0 ELSE 1 END ASC,
    -- 同一优先级内按订阅日期升序
    `SUBSCRIPTION DATE` ASC;

语句说明

  • 第一排序条件CASE WHEN COUNTRY = 'USA' THEN 0 ELSE 1 END ASC:通过CASE表达式给美国用户标记为0,其他国家用户标记为1,升序排序后美国用户就会整体排在前面。
  • 第二排序条件SUBSCRIPTION DATE ASC:在同一国家优先级组里(比如都是美国用户,或者都是非美国用户),按照订阅时间的先后顺序排列,满足“较早订阅者优先”的要求。

测试结果验证

用你提供的测试数据执行这个查询,返回结果完全符合预期:

ID NAME SUBSCRIPTION DATE COUNTRY
1 JOHN 2018-04-05 12:00:00 USA
3 CARL 2018-04-05 13:00:00 USA
2 MARY 2018-04-05 12:30:00 CANADA

⚠️ 注意:记得把语句里的your_table_name替换成你实际使用的数据库表名哦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:51:49