2012-09-17 69 views
1

該查詢檢索一些信息,這retuns所有的人:獲取使用LIMIT和ORDER BY山坳ASC最後X行

$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命令ony posible ..

我該怎麼辦呢?

我需要先計算出有多少行,然後才能使用LIMIT $many-$ipp,$many?或者有沒有辦法反轉結果順序?

回答

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