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

Obtener registro anterior y siguiente..

Estas en el tema de Obtener registro anterior y siguiente.. en el foro de Mysql en Foros del Web. mi duda es la siguiente, quiero obtener en una sola consulta el valor sigueinte y anterior a un registro en especifico, por ejemplo si tengo ...
  #1 (permalink)  
Antiguo 28/06/2010, 12:26
 
Fecha de Ingreso: junio-2008
Ubicación: Colombia
Mensajes: 207
Antigüedad: 16 años, 4 meses
Puntos: 12
Obtener registro anterior y siguiente..

mi duda es la siguiente, quiero obtener en una sola consulta el valor sigueinte y anterior a un registro en especifico, por ejemplo si tengo el numero de factura 29, quiero obtener el 28 y 30 respectivamente, pero quiero hacerlo en una sola consulta y no en dos, se puede hacer?

gracias de antemano
  #2 (permalink)  
Antiguo 28/06/2010, 14:11
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: Obtener registro anterior y siguiente..

SELECT (

SELECT numerofactura
FROM tutabla
WHERE numerofactura < 29
ORDER BY numerofactura DESC
LIMIT 1
) AS anterior, (

SELECT numerofactura
FROM tutabla
WHERE numerofactura >29
ORDER BY numerofactura ASC
LIMIT 1
) AS posterior
  #3 (permalink)  
Antiguo 28/06/2010, 14:18
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: Obtener registro anterior y siguiente..

Código MySQL:
Ver original
  1. SELECT (SELECT numerofactura
  2. FROM    tutabla
  3. WHERE numerofactura = ".$num." - 1) AS anterior,
  4.  
  5. (SELECT  numerofactura
  6. FROM      tutabla
  7. WHERE   numerofactura = ".$num." + 1)  AS posterior;

Asumiendo que NUM es un valor que le envias como parametro y que el query lo armas el codigo del lenguaje de programacion que uses "php"

Última edición por gnzsoloyo; 20/03/2014 a las 04:32
  #4 (permalink)  
Antiguo 22/04/2011, 02:33
 
Fecha de Ingreso: abril-2007
Mensajes: 10
Antigüedad: 17 años, 6 meses
Puntos: 0
Respuesta: Obtener registro anterior y siguiente..

jurena dio la mejor solución, más logica y coherente ya que si le restamos o sumamos un valor no estamos avanzando necesariamente al siguiente o retrocediendo al anterior. Que pasaría si se elimino algun registro anterior o posterior y no se tienen datos correlativos por ejemplo: 1 2 3 6 9 10 11 ...

Así que lo que dice jurena es lo mejor creo yo =)

A mi me funciono muy biien
  #5 (permalink)  
Antiguo 09/11/2011, 10:02
 
Fecha de Ingreso: noviembre-2011
Mensajes: 2
Antigüedad: 13 años
Puntos: 0
Respuesta: Obtener registro anterior y siguiente..

Buenas, tengo el mismo problema más un añadido. En mi tabla no hay una clave foránea numérica, sino un código de 3 letras.

Necesito conseguir también el valor anterior y siguiente de la tabla, pero no se como al no poder usar ">" ni "<" con el código de tres letras.

¿Hay alguna otra forma de hacerlo o de conseguir un valor numérico a partir de dicho código?

Gracias por adelantado.
  #6 (permalink)  
Antiguo 09/11/2011, 10:35
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: Obtener registro anterior y siguiente..

Describe ese código de tres letras, cómo se construye y qué significa.
Sin eso, lo que cuentas es un poco vago como para darte mejores ideas.
__________________
¿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: registro, siguiente, anteriores
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 07:54.