2010-11-30 82 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命令并限制正确的事情。

和嵌套查询是发动机上的痛苦...

感谢