我正在与我正在构建的查询进行斗争。假设我有一个这样的数据库表:
id | some_string
----------------
1 | 'lala'
2 | 'jeje'
3 | 'poopoo'
4 | 'wicked wicked'
我现在想要按键递增最后三个记录(2,3和4)。我试过这个:
SELECT * FROM tableName LIMIT 3 ORDER BY id ASC
这让我得到前三个记录,而不是最后三个记录。我当然也可以使用下面的查询,它可以获得正确的记录,但是我没有按升序获得它们:
SELECT * FROM tableName LIMIT 3 ORDER BY id DESC
有人知道如何按升序排列最后三条记录吗?欢迎所有提示!
答案 0 :(得分:1)
select * from (
select * from table_name order by id desc limit 3
) last_3_rows
order by id
答案 1 :(得分:0)
这是另一个查询中的查询。重新排序查询。(SQL - How to reorder a select query that uses the limit constraint)
select * FROM (SELECT * FROM tableName LIMIT 3 ORDER BY id DESC) AN_UNUSUAL_NAME ORDER BY id ASC
答案 2 :(得分:0)
对结果集进行排序,即。做一个select * from (<your query here>) order by id