TOP和ORDER BY sql错误

时间:2012-06-18 03:19:15

标签: mysql sql

我正在尝试使用PHP从MySQL中的表中选择最后一条记录。我相信我有一个SQL错误。这是我的SQL代码:

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

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

3 个答案:

答案 0 :(得分:51)

你的sql语法无效。使用 LIMIT 代替

试试这个:

SELECT id 
FROM table 
ORDER BY id DESC
LIMIT 1

TOP子句适用于MSSQL服务器。

答案 1 :(得分:11)

更简单,更与DBMS无关的方法是:

SELECT MAX(id) AS id
FROM table

仅当您希望 id字段时才会这样,否则如果您尝试SELECT其他列,则不会将匹配数据返回到id字段而您反而必须使用:

SELECT id, otherfields, ..., ...
FROM table
WHERE id = (SELECT MAX(id) FROM table)

答案 2 :(得分:0)

如果您不想使用限制

,这将有效查找最后一条记录
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