2010-11-30 4 views
1

Comment puis-je sélectionner les 5 dernières lignes de mysql (plus récent par ID par exemple) puis les commander asc ou desc ?? Le problème est que j'ai 1, 2, 3, 4, 5, 6, 7, je veux sélectionner le 2 le plus récent par exemple (6,7) puis les ordonner asc ou desc (6,7 ou 7, 6), mais si j'utilise le orderby puis la limite ce serait (1,2) ou (7,6), y at-il de toute façon à le faire à partir d'une déclaration SQL?Mysql sélectionner d'abord puis limiter

merci

Répondre

0
Select * from TABLE order by id asc , time_stamp desc 
1

Vous pouvez utiliser quelque chose comme

SELECT * FROM TABLE WHERE ID IN (SELECT ID FROM TABLE WHERE X ORDER BY ID LIMIT 2) ORDER BY ID DESC 
-1

Pourquoi ne pouvez-vous faire quelque chose comme

SELECT * 
FROM TABLE 
WHERE (TABLE.primary_key IN (
    SELECT TABLE.primary_key 
    FROM  TABLE 
    ORDER BY TABLE.id ASC 
    LIMIT 2 
)) 
ORDER BY TABLE.id DESC 
0

Je n'ai pas si vous vouliez le plus récent 5 ou 2, j'en utilise 2 ici. Mais voici quelque chose que je viens d'écrire sans test.

SELECT * FROM table WHERE id IN (SELECT id FROM table ORDER BY id DESC LIMIT 2) ORDER BY id ASC/DESC;

Espérons que cela aidera! :)

0

ok j'ai trouvé la solution, je vous remercie tous pour vos efforts et réponses,

i fait 2 colonnes, ID et tstamp (pour l'horodatage), vient de faire comme commande par id asc, tstamp asc/desc ... limite x, donc il commande toujours par l'identifiant puis les ordres par le tstamp et limite la bonne chose.

et les requêtes imbriquées sont une douleur pour le moteur ...

grâce

Questions connexes