Recherche des identifiants manquants dans une table MySQL
Dans une table de base de données relationnelle, il est crucial de garantir l'intégrité des données, notamment en conservant les identifiants uniques et séquentiels. Cependant, des lacunes dans les séquences ID peuvent survenir en raison de suppressions ou d'insertions. Cet article aborde le défi de la récupération des identifiants manquants dans une table MySQL, en fournissant une requête détaillée pour résoudre ce problème.
Énoncé du problème
Considérez la table MySQL suivante :
ID | Name 1 | Bob 4 | Adam 6 | Someguy
Comme vous pouvez le constater, il manque des numéros d'identification (2, 3 et 5). La tâche consiste à construire une requête qui renverra uniquement les identifiants manquants, dans ce cas, "2,3,5".
Solution
La requête suivante récupère les identifiants manquants :
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
Lecture supplémentaire
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!