【问题标题】:Applying conditions to different sort than final one将条件应用于与最终排序不同的排序
【发布时间】:2011-08-12 08:17:55
【问题描述】:

假设我有一个包含以下列的表格:

  • 身份证
  • created_at

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

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

所以我会这样做 - 我会将排序更改为“created_at ASC,id ASC” 然后查询 WHERE created_at > date LIMIT 5.

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

【问题讨论】:

    标签: sql


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2016-03-04
      • 2016-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多