MySQL : Accès au X derniers enregistrements

Fermé
zebiloute Messages postés 105 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 14 avril 2005 - 25 janv. 2002 à 11:55
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 25 janv. 2002 à 15:10
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 -
A voir également:

2 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
25 janv. 2002 à 15:10
Essye une requête SQL du genre

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

Johan Daine
4
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.
3
zebiloute Messages postés 105 Date d'inscription mardi 15 janvier 2002 Statut Membre Dernière intervention 14 avril 2005 4
25 janv. 2002 à 13:40
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 -
0