Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3054 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Question simple sur DELETE, LIMIT et ORDER BY

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Question simple sur DELETE, LIMIT et ORDER BY

n°1767023
Kyle_Katar​n
Posté le 30-07-2008 à 22:14:15  profilanswer
 

Bonjour
 
J'ai un petit problème dans l'administration de la base de SUMo (http://www.kcsoftwares.com/?sumo) et pour faire simple je vais résumer comme suivant :
 
J'ai une table à 2 colonnes : Nom (Char[100]) et Tps (date)
Cette table possède 1000 enregistrements.
 
Je cherche à faire une requête qui supprime les 50 enregistrement les plus anciens.
 
Peux on faire mieux que DELETE FROM Table WHERE nom IN (SELECT nom FROM Table ORDER BY Tps DESC LIMIT 50) ? (et encore j'ai pas testé....)
 
Merci d'avance !

mood
Publicité
Posté le 30-07-2008 à 22:14:15  profilanswer
 

n°1767130
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 31-07-2008 à 09:08:30  profilanswer
 

ben normalement ca devrais marche mais dans ta table tu as pas une colonne pour la cle primaire , comme ca tu fait le Desc sur ta cle
et normalement ca devrait marcher

n°1767135
anapajari
s/travail/glanding on hfr/gs;
Posté le 31-07-2008 à 09:32:15  profilanswer
 

A l'instinct je dirais que c'est du MySQL et donc que tu peux utiliser ce genre de syntaxe:

Code :
  1. DELETE FROM TABLE ORDER BY nom DESC LIMIT 50


---------------
Software and cathedrals are much the same - first we build them, then we pray.
n°1767184
mrbebert
Posté le 31-07-2008 à 11:20:32  profilanswer
 

"ORDER BY nom DESC", ca va pas plutôt supprimer les 50 plus récents ? :whistle:

n°1767402
infoman64
JE SUIS LA POUR TOI MON AMI
Posté le 31-07-2008 à 17:36:10  profilanswer
 

mrbebert a écrit :

"ORDER BY nom DESC", ca va pas plutôt supprimer les 50 plus récents ? :whistle:


il faut pas trier par le nom
disons les enregistrement suivant et qu'on supprime les 2 plus anciens

Code :
  1. id nom
  2. 1 fred
  3. 2 albert
  4. 3 francois
  5. 4 robert


sinon on trie par DESC nom , on va avoir  

Code :
  1. robert
  2. fred
  3. francois
  4. albert


 
et on supprimera alors  robert et fred, alors que robert vient d'arriver
 
par contre si tu as une cle , pour tes utilisateurs, tu fait (ou meme la date
 

Code :
  1. DELETE FROM TABLE ORDER BY id(ou date) LIMIT 50


la ca te supprimera les bons

n°1767403
MagicBuzz
Posté le 31-07-2008 à 17:37:36  profilanswer
 

ça va surtout supprimer les 50 du bas de l'alphabet, sans information de chronologie.
 
mais sinon, euh...
 
delete from table order by tmp limit 50
 
non ?

n°1767443
Kyle_Katar​n
Posté le 31-07-2008 à 19:10:51  profilanswer
 

OK je ne savais pas qu'ORDER BY marchait avec DELETE.
 
Je vais tester !

n°1767449
MagicBuzz
Posté le 31-07-2008 à 19:18:53  profilanswer
 

avec mysql, oui.
en sql, non.
 
(oracle par exemple, produit carrément une erreur)


Message édité par MagicBuzz le 31-07-2008 à 19:19:12
n°1767451
Kyle_Katar​n
Posté le 31-07-2008 à 19:24:45  profilanswer
 

OK merci
 
Je suis en MySQL


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Question simple sur DELETE, LIMIT et ORDER BY

 

Sujets relatifs
Question fonction mail()[ORACLE] Question création table
Question YaccQuestion XSD/XML
[VB6] Question, "Le grand livre visual basic 6"Question code dispo sur VBfrance ou autres
question à propos de la compilation[JavaScript]Question au sujet de l'augmentation d'un objet
[Javascript] Problème simple de syntaxe !question simple, difference entre deux classes CSS
Plus de sujets relatifs à : Question simple sur DELETE, LIMIT et ORDER BY


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR