Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

[SOLUCIONADO] En un campo ordenado por un numero obtner la fila que rompe el orden

Estas en el tema de En un campo ordenado por un numero obtner la fila que rompe el orden en el foro de Mysql en Foros del Web. Hola a todos, tengo una tabla en la cual en uno de sus campos es donde se ordena numéricamente, y deseo obtener el primer registro ...
  #1 (permalink)  
Antiguo 15/09/2015, 13:36
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
En un campo ordenado por un numero obtner la fila que rompe el orden

Hola a todos, tengo una tabla en la cual en uno de sus campos es donde se ordena numéricamente, y deseo obtener el primer registro que rompe el orden, ejemplo:

Código:
id	orden
1	1
2	2
3	3
4	4
5	5
6	45 <<< este
7	46
8	47
9	48
10	49
como ven el registro No. 6 rompe el orden, como obtengo ese campo orden?

Saludos.
  #2 (permalink)  
Antiguo 15/09/2015, 13:42
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

Pero cual orden se rompe?? los datos siguen ordenados, o quieres saber cual es el que tiene un incremento mayor???
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 15/09/2015, 14:14
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

Esta ordenado por el campo id sí, pero no en el campo orden, se supone que debe seguir la secuencia, de 5 salta a 45, cuando debe ser 6,7,8 etc., sí es cierto, la pregunta está mal planteada :D, el objetivo de eso es quiero eliminar de la tabla dinámicamente a partir del registro que rompe el orden, en este ejemplo a partir de 45.

Saludos.
  #4 (permalink)  
Antiguo 15/09/2015, 14:30
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

si nos basamos en los campos que tienes id y orden podriamos hacer algo como esto:


Código MySQL:
Ver original
  1. select * from tabla where id not in(
  2. select id from tabla as t1
  3. inner join tabla as t2 on (t1.id=t2.id)
  4. )

con eso sacamos todos los que el orden no corresponde a su id ;)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #5 (permalink)  
Antiguo 15/09/2015, 17:37
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

Hola, ¿seguro?, porque el campo id es ambiguo en tu consulta.
  #6 (permalink)  
Antiguo 15/09/2015, 17:53
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

Viendo tu consulta hice lo siguiente:

Código MySQL:
Ver original
  1. 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)

Mientras tanto me resuelve el problema.

Saludos.
  #7 (permalink)  
Antiguo 15/09/2015, 18:10
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 18 años, 3 meses
Puntos: 774
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

te complicaste demasiado mi consulta regresaba lo que buscabas, y no los campos no eran ambiguos ;)(la probe en sql server y funcionaba)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #8 (permalink)  
Antiguo 16/09/2015, 09:03
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

Hola, vuelvo y lo acabo de probar en PHPMyAdmin:

Cita:
#1052 - Column 'id' in field list is ambiguous
Saludos.
  #9 (permalink)  
Antiguo 16/09/2015, 09:22
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

Ajá... ¿Y te pusiste a mirar cuál era el punto donde está el campo sin indicar la tabla origen, al menos?
Nunca hagas un Copy+Paste. Primero REVISA EL CODIGO, antes de ejecutarlo.
Es tan simple como :

Código MySQL:
Ver original
  1. ... IN(SELECT t1.id -- <- acá estaba el error
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #10 (permalink)  
Antiguo 16/09/2015, 09:57
Avatar de Fleon  
Fecha de Ingreso: febrero-2010
Mensajes: 138
Antigüedad: 14 años, 9 meses
Puntos: 3
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

Oops, es mi culpa, gracias, ahora sí funciona.

Saludos.
  #11 (permalink)  
Antiguo 16/09/2015, 10:16
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: En un campo ordenado por un numero obtner la fila que rompe el orden

__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: campo, fila, numero, orden, ordenado, registro, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:16.