Rechercher : dans
Par :

MySQL : Accès au X derniers enregistrements

Dernière réponse le 25 jan 2002 à 15:10:59 zebiloute, le 25 jan 2002 à 11:55:23 
 Signaler ce message aux modérateurs

Ayant des connaissance très limité en SQL, je désire obtenir, les X derniers enregistrements d'une table.

Au début je faisais ç avec la clé primaire qui est en 'autoincrément'. Mais le Pb est quand je supprime un des enregitrements cela fout tous en vrac. La méthode qui consiste à tous les récupérer (SELECT * FROM table) et ne prendre que les X dernier prend beaucoup trop de ressources( Et ren plus ce n'est po propre du tout (Au niveau code)!! )

Donc si il y a un gourou SQLien(ne) qui peut me filer un coup de main, cela serait sympa.

Merci d'avance.

Quand ça veut Po ça veut po !!!
- Et ben y a plus qu'à attendre -

Meilleures réponses pour « MySQL : Accès au X derniers enregistrements » dans :
PhpMyAdmin - 1045- Access denied for user root@localhost VoirPhpMyAdmin - Access denied for user root’@localhost Cette astuce est destinée à ceux qui ont un problème d’ouverture de PhpMyAdmin (par exemple avec WAMP Server ou EasyPHP) avec l'erreur suivante : #1045- Access denied for user...
MySQL - Supprimer des doublons dans une table VoirPour supprimer des doublons au niveau d'une table donnée définie comme suit : CREATE TABLE IF NOT EXISTS TabTest ( cle_prim integer(4) NOT NULL auto_increment, x integer, y integer, z integer, ...
[Shell] Accès aux dernières commandes de l'historique VoirLe shell Linux/Unix regorge de fonctionnalités permettant de gagner du temps. Ainsi, il est possible de remonter dans l'historique des dernières commandes grâce aux flèches de navigation en appuyant sur la flèche du haut. Mais il y a moyen...
Télécharger Windows XP SP2 VoirLes Service Packs constituent un moyen pratique, tout en un, d'accéder aux derniers pilotes, outils et améliorations en matière de sécurité, ainsi qu'à d'autres mises à jour critiques. Windows XP SP2 (Service Pack 2), le dernier Service Pack pour...

1

Freedoomer, le 25 jan 2002 à 12:26:46
  • +2

Tu dois mettre un id sur ta table avec la valeur autoincrement, et lors de ta requete tu rajoute order by id desc .. ensuite tu boucle pour n'afficher que les dix premiers.

Répondre à Freedoomer

2

zebiloute, le 25 jan 2002 à 13:40:20

C'est ce que je faisais avant :

Ex pour les Id :

1, 2, 3, 4 , 8, 9, 10, 11, 14, 15, 17

Moi ce que je voudrais c'est qu'une requête ne me fournissent que les 5 derniers enregistrements. donc

10, 11, 14, 15, 17.

La méthode basic voudrais que je fasse :
"SELECT * FROM table ORDER BY Id" et avec la fonction "mysql_fetch_array", ou alors "mysql_data_seek", je vais directement au pointeur d'enregistrements (COUNT-5).

Mais là tu vois que la requête de base doit stocker tous les enregistrements de la table dans une zone mémoire. Ceci n'est pas terrible d'un point de vue programmation. en effet on alloue énormement de mémoir (Là y qu'une 15ène d'enregistrement, mais lorsqu'il y en a 10000 le Pb de mémoire va devenir pharaonique).

Tu vois le Pb. Je ne connais pas assez ce domaine, et c'est pour cela que je demande si il y a une méthode simple et efficace d'obtenir les X dernier enregistrement d'une tabel sachant que les séquence ne sont pas linéaire (voir Ex).

Quand ça veut Po ça veut po !!!
- Et ben y a plus qu'à attendre -

Répondre à zebiloute

3

 jisisv, le 25 jan 2002 à 15:10:59
  • +1

Essye une requête SQL du genre

SELECT field1,field2 FROM table1 ORDER BY id DESC LIMIT $X

Johan Daine

Répondre à jisisv