TOP和ORDER BY sql错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TOP和ORDER BY sql错误相关的知识,希望对你有一定的参考价值。

我试图使用phpmysql中的表中选择最后一条记录。我相信我有一个SQL错误。这是我的SQL代码:

SELECT TOP 1 id FROM `table` ORDER BY id DESC

如果这是有效的,我实际上有一个PHP错误,请告诉我。

答案

你有一个无效的SQL语法。改用LIMIT

试试这个:

SELECT id 
FROM table 
ORDER BY id DESC
LIMIT 1

TOP子句适用于MSSQL服务器。

另一答案

一种更简单,更DBMS不可知的方法是:

SELECT MAX(id) AS id
FROM table

这只是你只想要id字段,否则如果你试图SELECT其他列,它不会返回匹配数据到id字段,你将不得不使用:

SELECT id, otherfields, ..., ...
FROM table
WHERE id = (SELECT MAX(id) FROM table)
另一答案

如果您不想使用限制,这将有效查找最后一条记录

SELECT TOP 1 * FROM Products ORDER BY id desc

这将工作如果您不想使用限制,请查找指定列名称的最后一条记录

SELECT TOP 1 id FROM Products ORDER BY id desc

其他

SELECT * FROM Products ORDER BY id DESC LIMIT 1

以上是关于TOP和ORDER BY sql错误的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 查询错误 -ORDER BY 子句在视图中无效

SQL SERVER语句提示错误 delete top (5) FROM (SELECT top 100 percent * FROM 表名 ORDER BY DATE0) a

SQL:在 UNION 查询中使用 Top 1 和 Order By

SQL Update TOP Update Order by 和output的使用

sql'select top 1' without 'order by' from view with 'top 100 percent ... order by ...'声明给出了意想不到的结果[重

sql里 where和order by一起使用是怎样的顺序