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

如何调整新闻表SQL查询排序:最大ID记录优先,其余按ID升序

解决方案

你可以通过在ORDER BY子句中添加条件排序优先级来实现这个需求,具体的SQL语句如下:

SELECT * FROM news 
ORDER BY 
  -- 让最大ID的记录排在最前面(优先级0),其余记录优先级为1
  CASE WHEN id = (SELECT MAX(id) FROM news) THEN 0 ELSE 1 END ASC,
  -- 其余记录按ID升序排列
  id ASC;

原理说明

  • 第一个排序条件用CASE语句判断当前记录的ID是否等于表中的最大ID:如果是,就标记为0,否则标记为1。因为是ASC升序排序,0会排在1前面,这样最大ID的记录就会始终处于首位。
  • 第二个排序条件是id ASC,确保除了最大ID之外的所有记录按照ID从小到大排列,正好匹配你需要的1、2、3这样的顺序。

如果后续业务需要在非最大ID的记录里保留原有的sort字段排序逻辑,只需把第二个排序条件改成sort ASC即可,灵活度很高。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 08:35:27