Maison >base de données >tutoriel mysql >Comment puis-je trouver les identifiants manquants dans une table MySQL ?

Comment puis-je trouver les identifiants manquants dans une table MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-06 02:06:11638parcourir

How Can I Find Missing IDs in a MySQL Table?

Identification des identifiants manquants dans une table MySQL

Au sein d'une table MySQL, il est possible de rencontrer des identifiants manquants, créant des lacunes dans la séquence numérique. Pour récupérer ces identifiants manquants, une requête spécifique est requise.

Requête des identifiants manquants

Considérez l'exemple de tableau fourni :

ID Name
1 Bob
4 Adam
6 Someguy

De dans ce tableau, il est évident que les ID 2, 3 et 5 sont manquants. Pour extraire ces identifiants manquants, la requête suivante peut être utilisée :

SELECT a.id+1 AS start, MIN(b.id) - 1 AS end
FROM testtable AS a, testtable AS b
WHERE a.id < b.id
GROUP BY a.id
HAVING start < MIN(b.id);

Explication

  • La table de test est auto-jointe pour comparer les lignes adjacentes.
  • L'identifiant 1 (début) représente l'identifiant potentiellement manquant immédiatement après l'identifiant actuel (a.id).
  • Le MIN(b.id) - 1 (end) représente la différence entre l'ID minimum supérieur à la valeur de départ et 1, indiquant la fin potentielle de la plage d'ID manquante.
  • Les lignes satisfaisant la condition commencent < MIN(b.id) sont les plages avec des identifiants manquants.

Ressources supplémentaires

Pour plus d'informations sur ce sujet, reportez-vous à ce qui suit :

  • [Exemple d'écart de séquence Code](https://web.archive.org/web/20220706195255/http://www.codediesel.com/mysql/sequence-gaps-in-mysql/)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn