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

Consulta con variable nula

Estas en el tema de Consulta con variable nula en el foro de Mysql en Foros del Web. Que tal: Estoy queriendo hacer una consulta de varios campos, la consulta la hace, lo que no sé es si alguna variable a buscar de ...
  #1 (permalink)  
Antiguo 27/06/2006, 08:00
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Consulta con variable nula

Que tal:
Estoy queriendo hacer una consulta de varios campos, la consulta la hace, lo que no sé es si alguna variable a buscar de esos campos está vacia me la ignore. Tengo más o menos esto

Código:
SELECT *
FROM tabla
WHERE id_campo1 = variable1 AND id_campo2 = variable2
Si por ejemplo no existe variable1 que busque solamente la variable2 o viceversa, pero si existe ambas que me haga la consulta respetando esos dos criterios, espero haberme podido explicar :S.

**Ya he buscado en los temas de los foros y no he dado con la solución.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #2 (permalink)  
Antiguo 27/06/2006, 08:08
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Hola:
Prueba haciendo un OR en vez de AND
Cita:
SELECT *
FROM tabla
WHERE id_campo1 = variable1 OR id_campo2 = variable2
Con OR, si cualquiera de las dos comparaciones es verdadera te muestra los valores.
Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #3 (permalink)  
Antiguo 27/06/2006, 08:21
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Umm creo que no me sirve de mucho ya que si existen las dos me muestra tanto las que encuentre con variable1 o variable2, pero en este caso deberia mostrarme solo los registros que contengan las variables existentes.
Por ejemplo tengo estos valores

Código:
Columna1     Columna2
1                 9
2                 8
3                 7
Si solo existe la variable1 que me muestre el resultado de ese registro, pero si existe variable1 y variable2, debe mostrar el registro con el filtro de esas dos variable, espero más sugerencias y si no soy muy claro digan, please.

De todas maneras gracias PequeñoMauro
__________________
TolerantX
http://tolerantx.com
Linux User #385226
  #4 (permalink)  
Antiguo 27/06/2006, 09:40
Avatar de PequeñoMauro  
Fecha de Ingreso: abril-2006
Ubicación: Lima - Perú
Mensajes: 600
Antigüedad: 18 años
Puntos: 3
Cita:
Iniciado por TolerantX
Si solo existe la variable1 que me muestre el resultado de ese registro, pero si existe variable1 y variable2, debe mostrar el registro con el filtro de esas dos variable, espero más sugerencias y si no soy muy claro digan, please.
Hola, bueno, la verdad no entiendo mucho lo que deseas, por que la condición OR hace lo que tu deseas realizar. O quizás hay algo adicional que quieras.
Por si las dudas te dejo un link de la función CASE, quizás te ayude:

http://www.ispirer.com/doc/sqlways38...ays-1-041.html

Saludos
__________________
"Nada en mis manos traigo tan solo a tu cruz me aferro....."
  #5 (permalink)  
Antiguo 27/06/2006, 09:48
 
Fecha de Ingreso: junio-2005
Ubicación: Madrid, España
Mensajes: 288
Antigüedad: 18 años, 9 meses
Puntos: 1
Es esto lo que quieres??

SELECT *
FROM tabla
WHERE (id_campo1 = variable1 AND id_campo2 = variable2) OR (id_campo1 = variable1 AND id_campo2 = "") OR (id_campo1 = "" AND id_campo2 = variable2)
  #6 (permalink)  
Antiguo 29/06/2006, 08:41
Avatar de TolerantX  
Fecha de Ingreso: marzo-2006
Ubicación: Guadalajara, México.
Mensajes: 408
Antigüedad: 18 años, 1 mes
Puntos: 10
Creo que no me es muy conveniente esa solución, la cuestión es de que tengo 6 filtros de busqueda (menús desplegables), y si lo intento como me comentas se harían muchisimas combinaciones posibles.
Tal vez sea la única solución, de todas maneras sigo esperando sugerencias.
__________________
TolerantX
http://tolerantx.com
Linux User #385226
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 13:22.