Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1826 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Recuperer les N derniers enregistrements

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Recuperer les N derniers enregistrements

n°1244716
fluminis
Posté le 13-11-2005 à 17:23:16  profilanswer
 


Bonjour,
 
Question bête, comment récupérer les N derniers enregistrement d'une table ?
 
J'ai bien un champs date mais je veux recupérer les champs classés par ordre de date croissante.  
 
Ma table contient :
2005-11-10  a
2005-11-11  b
2005-11-12  c
2005-11-13  d
2005-11-14  e
 
et je voudrais
c, d, e (dans cet ordre et pas e,d,c)
 
Une idée ?
 
Merci d'avance
 
Fluminis


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
mood
Publicité
Posté le 13-11-2005 à 17:23:16  profilanswer
 

n°1244811
moi23372
Posté le 13-11-2005 à 20:34:47  profilanswer
 

quel SGBD
dans le cas de mysql, limit() es ce qu'il te faut

n°1244819
fluminis
Posté le 13-11-2005 à 20:44:16  profilanswer
 

Bien non justement LIMIT ne semble pas faire ce que je veux
 
SELECT * FROM matable ORDER BY col2 ASC LIMIT 3
=> a, b, c
 
SELECT * FROM matable ORDER BY col2 DESC LIMIT 3
=> e, d, c
 
et moi je veux c, d, e
et je voudrais eviter de faire une requete preliminaire avant pour récupérer le nombre de resutats sans limit puis faire
SELECT * FROM matable ORDER BY col2 ASC LIMIT n-3,3
 
une idée ?
 
EDIT : j'utilise mysql

Message cité 1 fois
Message édité par fluminis le 13-11-2005 à 20:45:24

---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1244832
betsamee
Asterisk Zeperyl
Posté le 13-11-2005 à 21:21:31  profilanswer
 

si ta version de mysql supporte les requetes imbriquees (>=4.1.X)
tu peux faire:

Code :
  1. select A.col1,A.col2
  2. from
  3. (select col1,col2 from matable order by col2 desc limit 3) A
  4. order by A.col2 asc

n°1244937
leflos5
On est ou on est pas :)
Posté le 14-11-2005 à 05:06:26  profilanswer
 

Sinon mathématiquement, tu veux les x derniers enregistrements sur y?
Donc limit y-x,x ;)

n°1244938
betsamee
Asterisk Zeperyl
Posté le 14-11-2005 à 05:57:51  profilanswer
 

leflos5 a écrit :

Sinon mathématiquement, tu veux les x derniers enregistrements sur y?
Donc limit y-x,x ;)


le pb c'est que y est inconnu

n°1245469
leflos5
On est ou on est pas :)
Posté le 14-11-2005 à 18:07:01  profilanswer
 

betsamee a écrit :

le pb c'est que y est inconnu


Suffit de le récupérer ;)
 
Sinon garder à chaque insert quelque part le last_id :)
 
Ou y'a peut être quelque chose à faire du côté des procédures stockées si mysql >=5

n°1245555
betsamee
Asterisk Zeperyl
Posté le 14-11-2005 à 20:03:26  profilanswer
 

leflos5 a écrit :

Suffit de le récupérer ;)
 
Sinon garder à chaque insert quelque part le last_id :)
 
Ou y'a peut être quelque chose à faire du côté des procédures stockées si mysql >=5


pourquoi se prendre la tete ma solution marche tres bien  :D  

n°1245579
leflos5
On est ou on est pas :)
Posté le 14-11-2005 à 20:34:12  profilanswer
 

betsamee a écrit :

pourquoi se prendre la tete ma solution marche tres bien  :D


Oui je pense :D C'est juste une  piste parce que ça va pour des petits résultats pas si y'a 10000000 d'enregistrements :P

n°1245812
cinocks
Posté le 15-11-2005 à 10:00:42  profilanswer
 

fluminis a écrit :

Bien non justement LIMIT ne semble pas faire ce que je veux
 
SELECT * FROM matable ORDER BY col2 ASC LIMIT 3
=> a, b, c
 
SELECT * FROM matable ORDER BY col2 DESC LIMIT 3
=> e, d, c
 
et moi je veux c, d, e
et je voudrais eviter de faire une requete preliminaire avant pour récupérer le nombre de resutats sans limit puis faire
SELECT * FROM matable ORDER BY col2 ASC LIMIT n-3,3
 
une idée ?
 
EDIT : j'utilise mysql


 
Où est le probleme avec e,d,c?
 
Il te suffit de stocker ca dans un tableau et lire ensuite ce tableau de la fin vers le debut.


---------------
MZP est de retour
mood
Publicité
Posté le 15-11-2005 à 10:00:42  profilanswer
 

n°1245893
fluminis
Posté le 15-11-2005 à 11:59:50  profilanswer
 

oui bien sur je peux stocker ça dans un tableau et faire le traitement ensuite, mais si une requete sql le faisait pour moi ça serait encore plus simple non ?
Soit je vais faire deux requetes ( SELECT count puis mon select) ma version de mySQL etant trop vielle pour accepter les requetes imbriquées soit je vais utiliser un traitement sur des tableaux
 
++


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1245965
leflos5
On est ou on est pas :)
Posté le 15-11-2005 à 13:34:42  profilanswer
 

Stoke ton nombre de message si tu fais plus de select que d'update ;)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Recuperer les N derniers enregistrements

 

Sujets relatifs
Récupérer l'état d'une socket en sortie d'un select()[VBA-EXCEL 2003] recuperer le nom de tous les feuilles dans une listbx
Récupérer Adresse IP Réseau [inet_ntoa][bash] recuperer le resultat d'une commande SQL dans une variable bash
Récuperer une varible Javascript en php dans un formulaireLire les 188 derniers octets d'un fichier texte en VB6.0
Récupérer la taille d'un tableau associatifRécupérer les valeurs boursières...
recuperer une adresse mailrécupérer le chemin du repertoire utilisateur [résolu]
Plus de sujets relatifs à : Recuperer les N derniers enregistrements


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR