Suppression d'anciennes données

Suppression d'anciennes données - PHP - Programmation

Marsh Posté le 01-09-2005 à 23:44:25    

Salut
 
Alors voilà, j'ai une table qui comporte.. id, message (par exemple)
disons qu'il y'a 200 enregistrements.
 
Je voudrais faire en sorte que s'il y'a un enregistrement de + sur la table (+ de 200 quoi), le plus vieux ID soit supprimés.
Sa peut parraitre bete, et j'pari que c'est un truc tout con, mais si quelqu'un peut m'aider...
 
Merci
 
Tilix

Reply

Marsh Posté le 01-09-2005 à 23:44:25   

Reply

Marsh Posté le 02-09-2005 à 00:01:04    

une variable tabeau ou une table dans uen base de donnée?
Si c'est une table dans une base de donée, falait posté dans la sous carégorie "SGBD/SQL".
Dans le cas d'une base de donnée, tu peux faire :

Code :
  1. DELETE FROM t1 USING matable AS t1, matable AS t2 WHERE t1.id=min(t2.id)


Code :
  1. DELETE matable FROM matable AS t1, matable AS t2 WHERE t1.id=min(t2.id)


Code :
  1. DELETE t1 FROM matable AS t1, matable AS t2 WHERE t1.id=min(t2.id)


Il faut regarder la doc de la base de donnée que t'utilises pour savoir quelle syntaxe utiliser. Ces trois là sont utilisable avec mysql en fonction des versions.


Message édité par omega2 le 02-09-2005 à 00:02:01
Reply

Marsh Posté le 02-09-2005 à 00:38:40    

Euh, bah je suis sous sql...
et je voudrais supprimé l'enregistrement le plus vieux dans ma table 8-) ...
Variable tableau je vois pas trop ce que c'est...
 
Lequel choisir ? :/

Reply

Marsh Posté le 02-09-2005 à 01:01:32    

Celui qui a le plus petit id bien sur....

Reply

Marsh Posté le 02-09-2005 à 07:33:23    

Tilix a écrit :

Euh, bah je suis sous sql...


Donc avec les données dans une base de donnée. A toi de savoir laquelle t'utilises pour savoir exactement comment écrire ta requette. Sans plus d'info, on poura pas t'aider plus.

Reply

Marsh Posté le 02-09-2005 à 14:54:02    

Je voudrais savoir à quoi correspond t1 et t2 ?
Et, quel genre d'info il faudrai pour m'aider plus ?:D

Reply

Marsh Posté le 02-09-2005 à 15:02:26    

au moins le nom de la base de donnée (mysql, oracle, sql server, autre?).
 
Quand à t1 et t2, c'est des alias de la table utilisé dans la requette pour pouvoir comparer le contenu de deux lignes de la base de donné. Sans ça, c'est comme si deux personnes lisaient le même livre : ils ne peuvent lire qu'une ligne à la fois et dés que la page est tourné on ne peut plus lire la page précédente. Les alias sont alors comme des marques pages spéciaux qui permettent de lire deux pages à la fois où qu'elles soient situé dans le livre. :)

Reply

Marsh Posté le 02-09-2005 à 18:23:42    

mysql

Reply

Marsh Posté le 02-09-2005 à 18:34:11    

alors, il te reste plus qu'a testé les requettes que je t'ai indiqué en mettant les bon noms de table et de champs.

Reply

Marsh Posté le 02-09-2005 à 18:38:09    

pour un delete habituelle, j'fais DELETE FROM matable WHERE blabla='blabla'
et cette manière n'est pas indiqué ... bref j'vais testé

Reply

Marsh Posté le 02-09-2005 à 18:38:09   

Reply

Marsh Posté le 02-09-2005 à 18:54:58    

En mysql,

Code :
  1. delete from table order by id desc limit 1

fonctionne.


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

Marsh Posté le 03-09-2005 à 00:36:47    

Huhu, j'avais pas pensé à la limite ! Merci :p
et puis y'a pas de " DESC " sinon il me supprimerai le plus récent :p


Message édité par Tilix le 03-09-2005 à 00:39:32
Reply

Marsh Posté le 03-09-2005 à 09:06:30    

Reply

Sujets relatifs:

Leave a Replay

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