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

en una consulta select mostrar x items antes y x items depues de una tupla exacta

Estas en el tema de en una consulta select mostrar x items antes y x items depues de una tupla exacta en el foro de Mysql en Foros del Web. Hola señores tengo la siguiente duda.. tengo este ejemplo.. a b c d e f g h i j k l lo que quiero hacer ...
  #1 (permalink)  
Antiguo 04/05/2009, 13:40
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
en una consulta select mostrar x items antes y x items depues de una tupla exacta

Hola señores tengo la siguiente duda.. tengo este ejemplo..

a
b
c
d
e
f
g
h
i
j
k
l


lo que quiero hacer de esa lista de tuplas por ejemplo si yo mando a buscar la tupla e entonces que me devuelva 2 antes y 2 despues es decir c,d,e,f,g y si seleccionara.. g por ejemplo e,f,g,h,i,j No se si existe alguna otra manera efectiva de dar solucion a este problema.. Saludos..
Gracias de antemano..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
  #2 (permalink)  
Antiguo 04/05/2009, 14:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: en una consulta select mostrar x items antes y x items depues de una tupla

¿Sólo tienes ese campo en la tabla o hay algún id? ¿Están ordenadas en la base o hay que ordenarlas?
  #3 (permalink)  
Antiguo 04/05/2009, 15:20
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: en una consulta select mostrar x items antes y x items depues de una tupla

clustering esto te puede servir.

Código mysql:
Ver original
  1. select campo_letra from tabla where ascii(campo_letra)
  2. between (ascii('e')-2) and (ascii('e')+2);

Un saludo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #4 (permalink)  
Antiguo 04/05/2009, 23:17
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: en una consulta select mostrar x items antes y x items depues de una tupla

Magnífica solución, huesos52.
Clustering, en caso de que no tengas la serie completa de caracteres (falten algunos en medio), puedes usar algo como esto (en realidad, vale para ambas situaciones):
Código sql:
Ver original
  1. (SELECT campo FROM tabla_letra WHERE campo_letra < 'e' ORDER BY campo_letra DESC LIMIT 2)
  2. UNION ALL
  3. (SELECT campo FROM tabla_letra WHERE campo_letra = 'e')
  4. UNION ALL
  5. (SELECT campo FROM tabla_letra WHERE campo_letra > 'e' ORDER BY campo_letra LIMIT 2) ORDER BY campo_letra

Última edición por jurena; 05/05/2009 a las 06:01
  #5 (permalink)  
Antiguo 05/05/2009, 06:28
Avatar de huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: en una consulta select mostrar x items antes y x items depues de una tupla

Es cierto jurena...
Si hay faltantes en la lista, mi solución no las toma en cuenta.
Por el contrario, tu solución siempre va a mostrar la letra en cuestión, dos letras atrás y dos letras adelante teniendo en cuenta los registros existentes en la tabla.

Esperemos que solución es mas apta para clustering.

Un saludo amigo.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
  #6 (permalink)  
Antiguo 05/05/2009, 07:51
Avatar de clustering  
Fecha de Ingreso: octubre-2003
Ubicación: Cochabamba
Mensajes: 95
Antigüedad: 20 años, 5 meses
Puntos: 0
Respuesta: en una consulta select mostrar x items antes y x items depues de una tupla

Muchas gracias señores por sus respuestas y les comentare los resultados.. en realidad mi tupla real son un lista de items.. y un campo es las medidas.. y normalmente quiero buscar todos los que tengan de medida 12 pero tambien quiero mostrar los aproximados a esa medida.. es por eso que puse este hilo.. Bueno probare y muestro los resultados.. gracias ..
__________________
Nunca escupas arriba, ni orines contra el viento... :adios:
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 15:42.