web-dev-qa-db-fra.com

TOP et ORDER BY erreur SQL

J'essaie de sélectionner le dernier enregistrement d'une table dans MySQL en utilisant PHP. Je crois que j'ai une erreur SQL. Voici mon code SQL:

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

Si cela est valide et que j'ai une erreur PHP, dites-le moi.

24
markasoftware

vous avez une syntaxe SQL invalide. utilisez LIMIT à la place

essaye ça:

SELECT id 
FROM table 
ORDER BY id DESC
LIMIT 1

la clause TOP fonctionne sur le serveur MSSQL.

50
John Woo

Une approche plus simple et plus agnostique aux SGBD serait:

SELECT MAX(id) AS id
FROM table

C'est seulement si vous voulez juste le champ id, sinon si vous essayez de SÉLECTIONNER d'autres colonnes, les données correspondantes ne seront pas renvoyées dans le champ id et vous devrez plutôt utiliser:

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

Cela fonctionnera Pour trouver le dernier enregistrement si vous ne souhaitez pas utiliser limite

SELECT TOP 1 FROM Products ORDER BY id desc

Autre

SELECT * FROM Products ORDER BY id DESC LIMIT 1
0
Faizal R