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

Búsqueda de rango en rango ??¿?

Estas en el tema de Búsqueda de rango en rango ??¿? en el foro de Mysql en Foros del Web. Hola buenas, Tengo un cacao mental. Tengo una tabla con un producto que tiene los siguientes campos superficie mínima superficie maxima Y una consulta con ...
  #1 (permalink)  
Antiguo 30/05/2012, 02:11
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Búsqueda de rango en rango ??¿?

Hola buenas,

Tengo un cacao mental.

Tengo una tabla con un producto que tiene los siguientes campos

superficie mínima
superficie maxima

Y una consulta con dos parámetros de búsqueda:

superficie desde y superficie hasta.

Como hago la consulta?? se que con BETWEEN puedo hacer rangos, pero no consigo hacer un rango dentro de un rango.

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #2 (permalink)  
Antiguo 30/05/2012, 02:19
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Búsqueda de rango en rango ??¿?

Código MySQL:
Ver original
  1. SELECT id FROM tutabla
  2. WHERE superficieMaxima<=X

Los que superficie maxima es menor o igual a X (hasta X)

Código MySQL:
Ver original
  1. SELECT id FROM tutabla
  2. WHERE superficieMinima>=Y

Los que superficie minima es mayor o igual a Y (desde Y)

Ahora lo juntamos

************ Corregido *************

Código MySQL:
Ver original
  1. SELECT * FROM tutabla
  2. WHERE superficieMinima>=Y
  3. AND id IN (SELECT id FROM tutabla
  4. WHERE superficieMaxima<=X)

**********************************

Por ejemplo... los que estan desde Y intersección con los que estan hasta X

Simplificamos

Código MySQL:
Ver original
  1. SELECT * FROM tutabla
  2. WHERE superficieMinima>=Y
  3. AND superficieMaxima <=X
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 30/05/2012 a las 02:47 Razón: Simplificamos + Corrección
  #3 (permalink)  
Antiguo 30/05/2012, 02:24
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Búsqueda de rango en rango ??¿?

Hola buenas,

No entiendo la última SQL.

Código MySQL:
Ver original
  1. AND superficieMaxima IN (SELECT id FROM tutabla
  2. WHERE superficieMaxima<=X)

Buscas una superficie máxima en una búsqueda de ids?

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #4 (permalink)  
Antiguo 30/05/2012, 02:45
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Búsqueda de rango en rango ??¿?

Código MySQL:
Ver original
  1. AND id IN (SELECT id FROM tutabla
  2. WHERE superficieMaxima<=X)


Error.... busco los id que coinciden en los dos grupos....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #5 (permalink)  
Antiguo 30/05/2012, 05:11
 
Fecha de Ingreso: julio-2008
Ubicación: Barcelona
Mensajes: 2.100
Antigüedad: 15 años, 9 meses
Puntos: 165
Respuesta: Búsqueda de rango en rango ??¿?

Hola buenas,

Creo que no sirve... si por ejemplo, el usuario hace una búsqueda de 200 a 500 y yo tengo un producto de 100 mínima y 400 de máxima, no saldría, cierto?

Un saludo!
__________________
Gracias por el Karma :D

empleo ofertas de trabajo
  #6 (permalink)  
Antiguo 30/05/2012, 06:01
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Búsqueda de rango en rango ??¿?

No no saldria puesto que no esta completamente dentro del rango pedido

Código pre:
Ver original
  1. |--------------------|
  2. 100                400
  3.                |--------|
  4.                300    400
  5.          |------------------------|
  6.          200                    500

La consulta solo retorna los que la maxima y la minima estan dentro del rango pedido, eso es lo que he interpretado que querias....

Si lo que se quiere es que uno de los extremos este dentro del rango obviamente no sirve....

En este caso seria

Código MySQL:
Ver original
  1. FROM tutabla
  2. WHERE (superficieMinima>=X AND superficieMaxima<=X)
  3. OR (superficieMinima>=Y AND superficieMaxima<=Y)

Donde

X=200

y

Y=500

en el caso de

superficieMinima=100

y

superficieMaxima=400

se cumpliria la primera parte del OR ya que X=200 esta entre 100 y 400 con lo que retornaria ese producto.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 30/05/2012 a las 06:12

Etiquetas: rango, tabla, campos
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 19:36.