将条件应用于与最终条件不同的条件

时间:2011-08-12 08:17:56

标签: sql

假设我有以下列的表格:

  • ID
  • created_at

此表的默认排序是“created_at DESC,id DESC”。

然后例如我想查询比给定日期更新的5条记录,但是 更新意味着如果总共有100个更新,我想要最老的5个 在这个组中(最接近给定日期)。

所以我这样做的方式是 - 我会将排序更改为“created_at ASC,id ASC” 然后查询WHERE created_at>日期限制5。

问题是我想以默认排序返回它。我在考虑 一些子查询,但我不确定什么是最好的解决方案。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

你的确很好,把你的查询(作为子查询)包含在另一个中:

SELECT *
FROM
  ( SELECT ...
    FROM tableX
    WHERE created_at > @CheckDate 
    ORDER BY created_at ASC, id ASC
    LIMIT 5
  ) AS tmp
ORDER BY created_at DESC, id DESC