2010-11-30 73 views
1

如何從mysql中選擇最新的5行(例如最新的id)然後命令它們爲asc或desc?Mysql首先選擇然後限制

問題是我有1,2,3,4,5,6,7,我想選擇最新的2例如(6,7),然後命令他們asc或desc(6,7或7, 6),但如果我使用order by然後限制它會是(1,2)或(7,6),有沒有辦法從一個sql語句做到這一點?

謝謝

回答

0
Select * from TABLE order by id asc , time_stamp desc 
1

您可以使用類似

SELECT * FROM TABLE WHERE ID IN (SELECT ID FROM TABLE WHERE X ORDER BY ID LIMIT 2) ORDER BY ID DESC 
-1

你爲什麼不能做一些事情,如

SELECT * 
FROM TABLE 
WHERE (TABLE.primary_key IN (
    SELECT TABLE.primary_key 
    FROM  TABLE 
    ORDER BY TABLE.id ASC 
    LIMIT 2 
)) 
ORDER BY TABLE.id DESC 
0

,如果你想我沒有得到最新的5或2,我在這裏使用2。但這裏是我沒有測試就寫的東西。

SELECT * FROM table WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 2) ORDER BY id ASC/DESC;

希望這會有所幫助! :)

0

好,我找到了解決辦法,感謝大家的努力和答案,

我做了2列,ID和TSTAMP(用於timestamp),僅僅通過ID ASC使其樣訂貨,TSTAMP ASC/desc ...限制x,所以它總是通過id命令,然後通過tstamp命令並限制正確的事情。

和嵌套查詢是發動機上的痛苦...

感謝