SQL选择所有但是表中的最后一行?

时间:2013-10-19 19:35:44

标签: sql

如何选择表中的最后一行?

我知道我可以选择最后一个SELECT item FROM table ORDER BY id DESC LIMIT 1,但我想选择ALL而不是最后一个。

我该怎么做?

选择一定金额并使用ASC将无效,因为我不知道有多少行。

我考虑过进行行计数并获取该数量并选择-1并使用ORDER BY id ASC但是有更简单的方法吗?

感谢。

4 个答案:

答案 0 :(得分:7)

最简单的方法是丢弃应用程序中的行。您可以使用计算的限制在SQL中执行此操作。将其计算为(SELECT COUNT(*) FROM T) - 1

或者:

SELECT *
FROM T
EXCEPT
SELECT TOP 1 *
FROM T
ORDER BY id ASC

排除最后一行。

答案 1 :(得分:5)

如果Id是唯一的,您可以按如下方式执行:

SELECT ...
FROM MyTable
WHERE Id < (SELECT MAX(Id) FROM MyTable)

答案 2 :(得分:0)

由于LIMIT无法获取参数,因此您有两个选项 - 构建动态查询(请参阅此帖子了解更多详细信息 - passing LIMIT as parameters to MySQL sproc)或在应用程序中对其进行过滤。

答案 3 :(得分:-1)

这样的事情应该有效

 select * 
 from table
 where id not in (SELECT id FROM table ORDER BY id DESC LIMIT 1)