marcb
vendredi 26 octobre 2007 à 21:29
Bonsoir,
Si tu veux sélectionner tous ceux dont l'écart avec le précédant est inférieur à 10, c'est ça :
CODE
SELECT t2.ID FROM matable AS t1, matable AS t2
WHERE (t1.ID + 1) = t2.ID
AND ((t2.VALEUR - t1.VALEUR) < 10)
Je te laisse deviner pour faire le DELETE.
Maintenant ça ne semble pas complètement coller à ton besoin car tu souhaites garder le 4 et le 6,
alors que l'écart est inférieur à 10 avec le précédant est bien inférieur à 10. Certes il ne l'est
plus *après* avoir supprimé les ID 3, 5 et 7 mais je ne vois pas comment faire une requête qui
puisse tenir compte de ça...
Ceci étant, si tu ne veux garder que les multiples de 10, tu t'en sors avec un modulo.
Pourrais-tu préciser l'algorithme de suppression des ID (quitte à écrire le code en php par exemple) pour
que l'on te dise si c'est réalisable en SQL pur ?
M