1

此查询用于检索一些消息,它会返回所有消息:

$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吗?或者有没有办法反转结果顺序?

4

1 回答 1

2

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

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
于 2012-09-17T18:36:33.787 回答