如何从mysql数据库获取倒数第二行?

9

我刚刚查询了数据库中倒数第二行:

以下是代码:

SELECT TOP 1 * FROM
   (select Top 2 * from Categories ORDER BY CategoryID DESC)x                     
   ORDER BY CategoryID

但是在新版本中,这段代码会给我一个语法错误。

在旧版本中,这段代码可以正常工作。

问题出在哪里:我在表格中有10个结果,当我提交这个查询时,它只给我9行。但是当我从表格中删除9行后,现在我有8行和10行。但是这段代码却给了我10行。


1
那么,“新”版本是完全不同品牌的数据库? - Strawberry
4个回答

37
SELECT * FROM Categories ORDER BY CategoryID  DESC LIMIT 1,1

2
只有一条记录时它不会起作用。请按照我的答案操作。 - Atif Mahmood

8
SELECT *  From
(select * from Categories ORDER BY CategoryID DESC LIMIT 2) AS x                    
ORDER BY CategoryID LIMIT 1

3
我认为你需要类似这样的查询:SELECT * from Categories ORDER BY CategoryID DESC LIMIT 1, 1,它可以按照CategoryID降序排列,并从第二行开始返回一条记录。

0

试试这个会有帮助。

select max(value)-1 from table name

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接