comment obtenir les 3 dernières entrées d'une table?

comment obtenir les 3 dernières entrées d'une table? - SQL/NoSQL - Programmation

Marsh Posté le 29-08-2005 à 15:47:54    

Salut, je suis novice :)
 
j'ai une table en mysql:
un|deux|trois|quatre|cinq|six|sept|huit|neuf|dix
ma clé va de 1 pour "un" à 10 pour "dix".
 
je veux obtenir les 3 derniers éléménts de la table : huit|neuf|dix.
Le pb c'est que si je fais:

select * from table order by clé desc limit 0,3


j'obtiens dix|neuf|huit.
Quelqu'un peut il me dire comment faire?
merci :)


Message édité par damcmoi le 29-08-2005 à 15:54:47
Reply

Marsh Posté le 29-08-2005 à 15:47:54   

Reply

Marsh Posté le 29-08-2005 à 15:50:04    

order by clé asc ?


---------------
[:whatde]
Reply

Marsh Posté le 29-08-2005 à 15:53:23    

non car il fera dans l'ordre :
un|deux|trois
 
Merci pour ton aide :)

Reply

Marsh Posté le 29-08-2005 à 15:56:57    

Heu oui c'est logique [:whatde]
Essayes  
SELECT * FROM table WHERE clé IN (select * from table order by clé desc limit 0,3) ORDER BY clé ...
si tu peux le faire.
Maintenant y'a peut-être plus propre.


Message édité par WhatDe le 29-08-2005 à 15:57:23

---------------
[:whatde]
Reply

Marsh Posté le 29-08-2005 à 16:01:53    

heu...
non ça marche pas. Message d'erreur de sous requête non supportée avec IN et LIMIT avec ma version de mysql.
Merci pour ton inspiration :).
Quelqu'un a une autre idée?
 
Yaurait pas une variable qui dit combien on a d'entrées dans la table?
Merci


Message édité par damcmoi le 29-08-2005 à 16:03:29
Reply

Marsh Posté le 29-08-2005 à 16:43:40    

count(*) pourquoi ? [:pingouino]


---------------
Y a de la bière, sur Véga, hein ? Si y'en a pas, on y va pas ! Et pis c'est tout ! :P | c'est vendu depuis lgtps
Reply

Marsh Posté le 29-08-2005 à 16:48:42    

parce que dans mon problème yaurait pas moyen de mettre un truc du genre:

limit count(*)-3,count(*)


pour lister les 3 dernières enntrées?
 
Je galère depuis 1h30 et j'arrive pas à résoudre mon problème....


Message édité par damcmoi le 29-08-2005 à 16:50:16
Reply

Marsh Posté le 30-08-2005 à 14:35:42    

up, siouplai c'est important pour moi.
ou alors peut être un changement de clé pour y parvenir?
Si qq'un a une idée, merci.

Reply

Marsh Posté le 30-08-2005 à 16:13:28    

Fait ça en deux requêtes. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 30-08-2005 à 16:19:15    

SELECT * FROM table t1 WHERE t1.clé IN (select t2.clé from table t2 limit 0,3) ORDER BY t1.clé
 
ha oué non j'avais pas vu pour les sous-requetes non supportées...


Message édité par casimimir le 30-08-2005 à 16:20:12
Reply

Marsh Posté le 30-08-2005 à 16:19:15   

Reply

Marsh Posté le 30-08-2005 à 17:29:56    

damcmoi a écrit :

parce que dans mon problème yaurait pas moyen de mettre un truc du genre:

limit count(*)-3,count(*)


pour lister les 3 dernières enntrées?
 
Je galère depuis 1h30 et j'arrive pas à résoudre mon problème....

non, à moins de passer d'abord une requête qui compte le nombre de lignes, puis d'utiliser le résultat pour construire la 2ème requête [:proy]  

Reply

Marsh Posté le 30-08-2005 à 17:37:07    

et pourquoi ne pas faire après un tri inverse dans le langage que tu utilise pour exploiter ta BD?
 
Par exemple en PHP un array_reverse ()...
Mais bon on sort de MySQL là...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed