MySQL - consulta para verificar huecos en datos de una tabla

   
Vista:
Imágen de perfil de diego

consulta para verificar huecos en datos de una tabla

Publicado por diego (4 intervenciones) el 16/09/2015 02:35:38
Buenas noches amigos.
Necesito un query para verificar el id de un documento o un hueco que queda en la base de datos cuando eliminan un documento ejemplo:
id : 1,2,3,5,6,8
que me diga el registro #4,7 no se encontró en la bd amigos se lo agradecería mucho.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

consulta para verificar huecos en datos de una tabla

Publicado por Rafael (57 intervenciones) el 16/09/2015 11:02:24
Suponiendo una estrutura asi:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
CREATE TABLE Tabla
	(`id` int, `valor` varchar(25))
;
 
INSERT INTO Tabla
	(`id`, `valor`)
VALUES
	(1, 'Valor 1'),
	(2, 'Valor 2'),
	(3, 'Valor 3'),
	(5, 'Valor 5'),
	(6, 'Valor 6'),
	(8, 'Valor 8'),
	(9, 'Valor 9'),
	(10, 'Valor 10'),
	(11, 'Valor 11'),
	(14, 'Valor 14'),
	(15, 'Valor 15'),
	(16, 'Valor 16'),
	(17, 'Valor 17'),
	(18, 'Valor 18'),
	(19, 'Valor 19')
;


Vemos que no esta el 4, 7, 12 y 13

Con un query de esta forma podemos encontrar esos intervalos:
1
2
3
4
5
SELECT a.id+1 AS start, MIN(b.id) - 1 AS end
FROM   Tabla AS a, Tabla AS b
WHERE  a.id < b.id
GROUP  BY a.id
HAVING start < MIN(b.id);

Con este resultado:
Imagen
Que como vez marca una venta de faltantes los dos primeros te dirian que te falta el 4 y 7
Pero el ultimo que empieza en 12 y termina en 13...

Obviamente a mayor cantidad de datos el query puede tardar muchisimo...
Si te sirve un mas uno no viene mal...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

consulta para verificar huecos en datos de una tabla

Publicado por diego (4 intervenciones) el 16/09/2015 14:51:15
Amigo genial perfecta esta muy bien, amigo pero me puedes explicar el query yo quiero saber que hace.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consulta para verificar huecos en datos de una tabla

Publicado por Rafael (57 intervenciones) el 16/09/2015 15:05:38
Te explico ... pero no me has puesto un mas uno jajajaja

A ver la tabla la ligo o comparo contra si misma
FROM Tabla AS a, Tabla AS b

Pero se que A va dominando y trata de ligarse a B mientras el ID de b sea menor que A

Ejemplo:

Para el ID 1 no liga nada
Para el ID 2 liga el 1
...
...
...
Para el ID 8 liga el 6,5,3,2 y 1

Agrupa por ID
Y busca que se cumpla

HAVING start < MIN(b.id);
Asi pues cuando llega a 3 por ejemplo suma 1
Lo que hace que start sea 4 pero 4 es NULO por que no esta luego es menor que cualquier numero que venga contando en B asi pues no existe lo pone...

busca 5 y si lo hay por lo cual el end es el mismo es un 4
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

consulta para verificar huecos en datos de una tabla

Publicado por diego (4 intervenciones) el 16/09/2015 15:12:48
Excelente compañero muy buen aporte lo felicito muchísimas gracias personas como usted son las que necesitamos saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consulta para verificar huecos en datos de una tabla

Publicado por elhabraque elhabraque@hotmail.com (4 intervenciones) el 17/09/2015 10:35:27
Excelente ejemplo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

consulta para verificar huecos en datos de una tabla

Publicado por diego (4 intervenciones) el 17/09/2015 17:46:34
Amigo entonces la columna "Start" es la columna que contiene el id que no encontró me queda esa duda.
Feliz día.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar