【问题标题】:Get last X rows using LIMIT and ORDER BY col ASC使用 LIMIT 和 ORDER BY col ASC 获取最后 X 行
【发布时间】:2012-09-10 00:27:06
【问题描述】:

这个查询是检索一些消息,它返回所有的消息:

$q = "
    SELECT *
    FROM pms
    WHERE
        (
            (id_to = $id and id_from = ".sesion().") 
            OR 
            (id_from = $id and id_to = ".sesion().")
        )
        AND (id > $from)
    ORDER by fecha ASC";

问题是我想获得最后 50 个元素,但我认为它唯一可能使用 DESC 排序..

我该怎么做?

我需要先计算多少行,然后才能使用 LIMIT $many-$ipp,$many 吗?或者有没有办法颠倒结果顺序?

【问题讨论】:

    标签: mysql sql-order-by limit


    【解决方案1】:

    只需将您的查询设为子查询:

    SELECT * FROM
    (
        SELECT *
        FROM pms
        WHERE
            (
                (id_to = $id AND id_from = ".sesion().")
                OR (id_from = $id and id_to = ".sesion().")
            )
            AND id > $from
        ORDER BY fecha DESC
        LIMIT 50
    ) q1
    ORDER BY fecha ASC
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-22
      • 2011-09-06
      • 2016-12-31
      • 2020-11-19
      • 1970-01-01
      • 2020-03-09
      • 2017-01-20
      • 1970-01-01
      相关资源
      最近更新 更多