如何從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語句做到這一點?
謝謝
如何從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語句做到這一點?
謝謝
Select * from TABLE order by id asc , time_stamp desc
您可以使用類似
SELECT * FROM TABLE WHERE ID IN (SELECT ID FROM TABLE WHERE X ORDER BY ID LIMIT 2) ORDER BY ID DESC
你爲什麼不能做一些事情,如
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
,如果你想我沒有得到最新的5或2,我在這裏使用2。但這裏是我沒有測試就寫的東西。
SELECT * FROM table WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 2) ORDER BY id ASC/DESC;
希望這會有所幫助! :)
好,我找到了解決辦法,感謝大家的努力和答案,
我做了2列,ID和TSTAMP(用於timestamp),僅僅通過ID ASC使其樣訂貨,TSTAMP ASC/desc ...限制x,所以它總是通過id命令,然後通過tstamp命令並限制正確的事情。
和嵌套查詢是發動機上的痛苦...
感謝