2012-06-18 16 views
21

Estoy tratando de seleccionar el último registro de una tabla en MySQL usando PHP. Creo que tengo un error SQL. Aquí está mi código SQL:TOP y ORDER BY sql error

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

Si esto es válido y realmente tengo un error de PHP, dígame.

Respuesta

43

tiene una sintaxis sql no válida. utilice LIMIT lugar

probar esto:

SELECT id 
FROM table 
ORDER BY id DESC 
LIMIT 1 

la cláusula TOP funciona en el servidor MSSQL.

+0

Esto funciona muy bien. Supongo que no soy muy bueno en SQL ... – Markasoftware

+0

@Markasoftware: no si cambias a SQL Server. :) –

+1

@PeterMajeed tienes razón. pero el op etiquetó MySQL no MS :) –

9

un enfoque más simple y más DBMS-agnóstico sería:

SELECT MAX(id) AS id 
FROM table 

Eso es sólo si desea simplemente el campo id, de lo contrario si se trató de seleccionar otras columnas, no sería devolver datos a juego al campo id y debe en su lugar tiene que utilizar:

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

esto también es bueno :) –

+0

Esto parece estar bien también. – Markasoftware

0

Esto funcionará para encontrar el último registro si no está mirando para utilizar límite

SELECT TOP 1 FROM Products ORDER BY id desc 

Else

SELECT * FROM Products ORDER BY id DESC LIMIT 1 
Cuestiones relacionadas