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

Hacer las consultas un poco mas avanzadas...

Estas en el tema de Hacer las consultas un poco mas avanzadas... en el foro de Mysql en Foros del Web. Hola! Primero discúlpenme por colocar el titulo de este tema un poco ambiguo, es que no se muy bien como llamar a este tipo de ...
  #1 (permalink)  
Antiguo 27/01/2012, 14:29
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 15 años
Puntos: 0
Pregunta Hacer las consultas un poco mas avanzadas...

Hola! Primero discúlpenme por colocar el titulo de este tema un poco ambiguo, es que no se muy bien como llamar a este tipo de consulta. Yo se hacer una consulta básica como esta por ejemplo:

Código:
mysql_query("SELECT habitaciones FROM viviendas WHERE habitaciones =2", $con);
con esto encuentro todas las viviendas con 2 habitaciones… todo bien hasta aquí… pero en el caso de que necesite hacer una consulta con varios parámetros “por asi decirlo”, es decir que por ejemplo además de buscar todas las viviendas con 2 habitaciones también busque las que tiene 2 baños, una cantidad de metros de contruccion, etc. Es decir, hacer una búsqueda mas especifica. Ademas veo que algunas paginas utilizan rango de precio, es decir, hacen búsquedas de viviendas con precios mayores de una cantidad pero al mismo tiempo menores de otra cantidad.

Saludos y gracias!
  #2 (permalink)  
Antiguo 27/01/2012, 15:46
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: Hacer las consultas un poco mas avanzadas...

Hola LuisCZ:

Por el tipo de pregunta creo que no tienes muchos conocimientos con respecto a SQL, así es que te recomendaría leer primero algún manual básico para que sepas cómo están estructuradas las consultas.

La sección where puede ser tan sencilla o tan complicada como quieras. El enunciado del WHERE debe ser una EXPRESIÓN BOOLEANA es decir las condiciones deben regresar un FALSO o VERDADERO cada vez que se evalúan. Para incluir varias condiciones en el WHERE haces uso de los OPERADORES LÓGICOS

http://dev.mysql.com/doc/refman/5.0/...operators.html

sólo tienes que cuidar la jerarquía de operadores, ya que al igual que los signos matemáticos (+,-,/,*) cada uno tiene diferente orden de evaluación.

Según lo que planteas podrías poner las condiciones de búsqueda más o menos así:

Código:
SELECT habitaciones FROM viviendas WHERE habitaciones =2 AND
baños = 2 and (metros_cuadrados = 90 or metros_cuadrados = 120) 
.....
.....
.....
hay muchos operadores adicionales que puedes aplicar en el WHERE como lo son IN, EXISTS, BETWEEN, operadores relacionales (>, <, >=, <=) y un largo etcétera...
por lo que resulta complicado abarcarlos en un solo post. ponte a leer un poco y si continuas con problemas acude nuevamente a los foros.

Saludos
Leo.
  #3 (permalink)  
Antiguo 27/01/2012, 19:08
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 15 años
Puntos: 0
Respuesta: Hacer las consultas un poco mas avanzadas...

Hola, leonardo_josue! si... aun debo aprender muchas cosas... pero tu explicación me parece muy util. Voy a intentar jugar un poco con los operadores adicionales para aprender a utilizarlos...
Muchisimas gracias por tu ayuda!
  #4 (permalink)  
Antiguo 30/01/2012, 14:28
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 15 años
Puntos: 0
Respuesta: Hacer las consultas un poco mas avanzadas...

Hola, bueno... surgio otra duda que bien puedo consultarla en este mismo tema. Volviendo al caso del numero de habitaciones por ejemplo yo tengo un campo selec donde el usuario puede elegir entre varios numeros 1, 2, 3, 4, 5, etc... pero ademas tengo una opcion "todas" que si el usuario la selecciona deberia ignorar esta restrincion en WHERE ya que cualquier cantidad de habitaciones son validas en esta consulta. No se si me explique bien...

Saludos y gracias!
  #5 (permalink)  
Antiguo 30/01/2012, 15:55
Avatar de Rod_Man_mx  
Fecha de Ingreso: agosto-2009
Mensajes: 69
Antigüedad: 15 años, 3 meses
Puntos: 4
Respuesta: Hacer las consultas un poco mas avanzadas...

Ahí ya lo que tendrías que hacer seria armar tu query dependiendo las opciones que te de, pero eso lo tendrás que checar desde el lenguaje que estés usando, por ejemplo

Código PHP:
Ver original
  1. $query = "SELECT * FROM ";
  2.  
  3. if($cantidad != "todas") {
  4.       $query .= "WHERE cantidad = ' $cantidad'; "
  5. }

Es un ejemplo muy básico pero creo que es lo que buscas.

Saludos
  #6 (permalink)  
Antiguo 31/01/2012, 14:22
Avatar de LuisCZ  
Fecha de Ingreso: noviembre-2009
Ubicación: Maracaibo
Mensajes: 127
Antigüedad: 15 años
Puntos: 0
Respuesta: Hacer las consultas un poco mas avanzadas...

Ok! Rod_Man_mx, intentare hacerlo de esa manera y te aviso cualquier cosa! muchas gracias!

Etiquetas: poco, query, select
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 08:39.