如何从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命令并限制正确的事情。
和嵌套查询是发动机上的痛苦...
感谢