Recuperer les N derniers enregistrements - SQL/NoSQL - Programmation
Marsh Posté le 13-11-2005 à 20:34:47
quel SGBD 
dans le cas de mysql, limit() es ce qu'il te faut
Marsh Posté le 13-11-2005 à 20:44:16
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
Marsh Posté le 13-11-2005 à 21:21:31
si ta version de mysql supporte les requetes imbriquees (>=4.1.X) 
tu peux faire: 
| Code : 
 | 
Marsh Posté le 14-11-2005 à 05:06:26
Sinon mathématiquement, tu veux les x derniers enregistrements sur y? 
Donc limit y-x,x 
Marsh Posté le 14-11-2005 à 05:57:51
| leflos5 a écrit : Sinon mathématiquement, tu veux les x derniers enregistrements sur y?  | 
 
le pb c'est que y est inconnu 
Marsh Posté le 14-11-2005 à 18:07:01
| 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
Marsh Posté le 14-11-2005 à 20:03:26
| leflos5 a écrit : Suffit de le récupérer  | 
 
pourquoi se prendre la tete ma solution marche tres bien   
  
Marsh Posté le 14-11-2005 à 20:34:12
| betsamee a écrit : pourquoi se prendre la tete ma solution marche tres bien   | 
 
Oui je pense  C'est juste une  piste parce que ça va pour des petits résultats pas si y'a 10000000 d'enregistrements
 C'est juste une  piste parce que ça va pour des petits résultats pas si y'a 10000000 d'enregistrements  
 
Marsh Posté le 15-11-2005 à 10:00:42
| fluminis a écrit : Bien non justement LIMIT ne semble pas faire ce que je veux  | 
 
 
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.
Marsh Posté le 15-11-2005 à 11:59:50
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 
 
++
Marsh Posté le 15-11-2005 à 13:34:42
Stoke ton nombre de message si tu fais plus de select que d'update 
Marsh Posté le 13-11-2005 à 17:23:16
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