在SQL中使用SELECT限制乱搞行的顺序

时间:2016-05-24 21:45:03

标签: mysql sql

我正在尝试从SQL获取一些行并按ID排序。目前我的查询是这样的:

SELECT * FROM logs ORDER by id ASC;

这将获取我的所有行并按ID的升序垂直打印:

1
2
3
4 etc etc.

现在,问题是我希望只打印底部2,如下所示:

3
4 

但我尝试了不同的代码,但它不会起作用。举个例子,我试过了:

SELECT * FROM logs ORDER by id ASC DESC limit 10

但这会打印出来,所以订单又错了!

4
3

有什么想法吗?谢谢你们

1 个答案:

答案 0 :(得分:3)

您可以使用子查询。

SELECT * 
FROM (
    SELECT * 
    FROM logs 
    ORDER BY id DESC 
    LIMIT 2
) subquery 
ORDER BY id ASC

请注意,从子查询中选择需要别名(在本例中为subquery)。否则你将得到错误Every derived table must have its own alias,至少在MySQL中。