假设我有以下列的表格:
此表的默认排序是“created_at DESC,id DESC”。
然后例如我想查询比给定日期更新的5条记录,但是 更新意味着如果总共有100个更新,我想要最老的5个 在这个组中(最接近给定日期)。
所以我这样做的方式是 - 我会将排序更改为“created_at ASC,id ASC” 然后查询WHERE created_at>日期限制5。
问题是我想以默认排序返回它。我在考虑 一些子查询,但我不确定什么是最好的解决方案。有什么想法吗?
答案 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