[resolu] delete mysql au dessus d'une limite


chava2b
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 263
Inscription: 5 Déc 2003

[resolu] delete mysql au dessus d'une limite

Message le Ven Juil 06, 2007 8:41

Salut

Je cherche à supprimer des enregistrements s'il y en a plus d'un nombre.
cad, s'il y a plus de 200 enregistrements, je veux supprimer tous ceux qui sont au dessus de ces 200.

je pensais faire ca :

Code: Tout sélectionner
DELETE FROM `s_tmp` WHERE id NOT IN ( SELECT id FROM s_tmp LIMIT 200 )


mais mysql n'aime pas le limit dans le subquery...

Y aurait une autre methode simple ?

merci
Dernière édition par chava2b le Ven Juil 06, 2007 10:29, édité 1 fois.


kanon90
WRInaute impliqué
WRInaute impliqué
 
Messages: 934
Inscription: 23 Mar 2007

Message le Ven Juil 06, 2007 8:47

DELETE FROM `s_tmp` WHERE id > 200;


chava2b
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 263
Inscription: 5 Déc 2003

Message le Ven Juil 06, 2007 8:53

ma-deesse, l'id etant un auto-increment, ce chiffre ne par pas forcement de 0... mais bon autant je peux essayer de rajouter un compteur dans ma table

skippyzrnr
WRInaute impliqué
WRInaute impliqué
 
Messages: 664
Inscription: 11 Jan 2005

Message le Ven Juil 06, 2007 9:11

Il me semble que DELETE FROM laTable LIMIT 200, 1000 fonctionne... à tester néanmoins :wink:


chava2b
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 263
Inscription: 5 Déc 2003

Message le Ven Juil 06, 2007 9:18

le limit marche sur un delete, mais ca m'oblige à faire 2 requetes :
- la premiere pour savoir le nombre d'enregistrement total
- le delete

je ne veux pas supprimer 200 enregistrements, mais seulement ceux au dessus des 200 premiers - si y a 210 enregistreemnts, je ne veux en supprimer que 10

skippyzrnr
WRInaute impliqué
WRInaute impliqué
 
Messages: 664
Inscription: 11 Jan 2005

Message le Ven Juil 06, 2007 9:20

oui mais l'exemple que je te donnais ( si ca fonctionne ) c'est pour supprimer 1000 enregistrement à partir du 200ème


chava2b
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 263
Inscription: 5 Déc 2003

Message le Ven Juil 06, 2007 9:27

skippyzrnr, ca m'etonne que ca ne marche pas car ca aurait été tellement simple... mais ca ne marche pas car le limit du delete ne supporte qu'un chiffre.


e-kiwi
Modérateur
Modérateur
 
Messages: 15546
Inscription: 23 Déc 2003

Message le Ven Juil 06, 2007 9:50

quel est le mal à faire 2 requetes ? c est la solution de rapidité ;)


chava2b
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 263
Inscription: 5 Déc 2003

Message le Ven Juil 06, 2007 9:58

e-kiwi c'est ce que je fais mais je pensais pouvoir faire mieux.

Merci


e-kiwi
Modérateur
Modérateur
 
Messages: 15546
Inscription: 23 Déc 2003

Message le Ven Juil 06, 2007 10:17

tu peux ptetre faire mieux, je ne suis pas un pro du SQL


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2199
Inscription: 10 Avr 2005

Message le Ven Juil 06, 2007 10:26



e-kiwi
Modérateur
Modérateur
 
Messages: 15546
Inscription: 23 Déc 2003

Message le Ven Juil 06, 2007 10:47

comme ça il efface les 200 permiers ^^


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2199
Inscription: 10 Avr 2005

Message le Ven Juil 06, 2007 10:51

J'ai vraiment besoin de vacances : )


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: khymo1 et 0 invités