Bonjour à tous,

J'ai le programme suivant sur lequel j'aimerais mettre une boucle WHILE :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
SELECT @taille := count(*) FROM boris;
 
WHILE taille !=0 DO
 
INSERT INTO  resultat_tri
(SELECT xl3_m, xl3_s,
    count(*) AS occurrence
  FROM boris
  GROUP BY xl3_m, xl3_s
  ORDER BY occurrence DESC
  LIMIT 1);
 
DELETE t1 
FROM boris t1
INNER JOIN resultat_tri t2 ON t1.xl3_m = t2.xl3_m2;
 
SELECT @taille := count(*) FROM boris;
 
END WHILE;
en théorie, la variable taille sur laquelle porte ma condition d'arrêt décroit d'un pas à chaque tour (puisque je ne garde que le premier résultat du tri que je supprime). Du coup, elle est automatiquement décrémentée et le WHILE se termine au bout de sizeof(boris).

Pb, ça ne fonctionne pas. Voyez-vous un problème avec ma syntaxe ?