Bonjour,

Existe-il une méthode pour toruver les ruptures dans un champ ID

exemple :

1 2 3 4 5 6 8 9 10 11 13 14 15 .......................... 2500 2501 2503 ............

Je souhaiterais une requete qui me retourne :
7 12 2502

est ce possible ?
merci d'avance.

Pierre

7 réponses


Huggy
Réponse acceptée

Pour ta requête, tu peux trouver les débuts de séquences manquantes

SELECT (id+1) as manquant FROM matable WHERE (id+1) not in (SELECT id FROM matable)

maintenant si tu veux tous les trouver il faut parcourir un curseur, soit par un langage hote soit par une procédure stockée

A ma connaissance je ne connait aucune requête SQL pour retourner ce genre de résultat, c'est sûr que ce serai plus performant qu'un SELECT * puis un tri avec php ^^'

Avec SELECT LAST_INSERT_ID() et MAX() tu peux déjà savoir combien d'id sont manquantes

@Zmi nazim, t'as rien compris alors t'es viré :D
et sans indemnitée !! :D

@pluche

Pierre

En effet, tu n'as rien compris Zmi nazim, contrairement à certains sujets celui-ci est bien placé où il doit être, ce dont il parle concerne le développement web, plus précisément du code et plus particulièrement MYSQL, il n'a donc aucune raison de parler de contrainte d'emploi dans son sujet.
Il serait donc souhaitable que tu fasse plus attention à ce que tu lis et éviter de parler de quelque chose qui n'a aucun rapport avec le sujet.
J'aimerais également savoir pourquoi tu t'amuses à déterrer des sujets qui ont un an et voir plus, car ce n'est pas le seul sur lequel tu participes et auquel je te répond.

Merci @Huggy ;)
avec un an de retard, mais c'est good ;)
@plus
Pierre

@Pierrot01 désolé pour la date
je pensais qu'après 3 semaines les commentaires étaient bloqués ???

@Huggy, ne sois pas désolé :D :D
à l'époque, me suis démerder autrement (j'ai fais ça comme un cochon) :D :D
@plus
Pierre