2012-06-18 44 views
21

我想從PHP中使用MySQL的表中選擇最後一條記錄。我相信我有一個SQL錯誤。這裏是我的SQL代碼:TOP和ORDER BY SQL錯誤

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

如果這是有效的,我實際上有一個PHP錯誤,告訴我。

回答

43

你有一個無效的sql語法。使用LIMIT代替

試試這個:

SELECT id 
FROM table 
ORDER BY id DESC 
LIMIT 1 

TOP條款適用MSSQL服務器上。

+0

這個偉大的工程。我想我只是不太擅長SQL ... – Markasoftware

+0

@Markasoftware:如果您切換到SQL Server,則不是。 :) –

+1

@PeterMajeed你是對的。但操作標記MySQL不是MS :) –

9

更簡單,更DBMS無關的方法是:

SELECT MAX(id) AS id 
FROM table 

只有當你想只是id領域,如果你想選擇其他列那,否則,它不會返回匹配的數據到id場,你會反而不得不使用:

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

這也不錯:) –

+0

這看起來也不錯。 – Markasoftware

0

這會努力找到的最後一個記錄,如果你不希望使用限制

SELECT TOP 1 FROM Products ORDER BY id desc 

否則

SELECT * FROM Products ORDER BY id DESC LIMIT 1