2010-07-15 5 views
1

Je voudrais voir les dix dernières lignes de notre base de données mysql dans l'ordre ID. Naively, je m'attendrais à être en mesure de faire quelque chose comme ceci:Puis-je réorganiser les sélections SQL après l'application de la limite?

SELECT * FROM (SELECT * FROM things ORDER BY id DESC LIMIT 10) ORDER BY id ASC 

mais ce n'est pas la syntaxe valide. Quelle est la bonne façon d'exprimer la requête que j'essaie de lancer?

Répondre

4

Vous avez obtenu que presque droite:

SELECT * 
FROM 
    (SELECT * FROM things ORDER BY id DESC LIMIT 10) xxx 
ORDER BY id ASC 

Notez le xxx innocent après la sous-sélection que vous avez besoin.

1

Essayez:

SELECT * FROM (SELECT * FROM things ORDER BY id DESC LIMIT 10) temp 
ORDER BY id ASC 

Vous avez besoin quelque chose comme ça parce qu'ici clause FROM est exécutée avant même SELECT.