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

Ayuda consulta y busqueda

Estas en el tema de Ayuda consulta y busqueda en el foro de Mysql en Foros del Web. Hola amigos tengo un rpoblema no puedo armar una consulta que tiene el objetivo de cumpli con lo siguiente: Es una consulta que trae todos ...
  #1 (permalink)  
Antiguo 28/03/2009, 14:57
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 15 años, 11 meses
Puntos: 7
Ayuda consulta y busqueda

Hola amigos tengo un rpoblema no puedo armar una consulta que tiene el objetivo de cumpli con lo siguiente:

Es una consulta que trae todos los datos mediante un filtro de campaña, y tambien hay un campo que es para la busqueda de un email.., si en el campo del email no se pone nada o no existe debera traer todos los datos que cumplan con el id de la campaña.

resumen: que siempre me traiga todos los datos amenos que exista la coincidencia

ejemplo: si alguien pone un dato en el campo de busqueda y no existe, debera traer todos los datos normalmente, si el dato existe lo traera...

Trate de esta manera pero no logro hacerlo

SELECT *
FROM recipientes
WHERE ( camap_id = 1 ) OR ( email LIKE 'fffffffff' )
__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.
  #2 (permalink)  
Antiguo 28/03/2009, 17:30
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: Ayuda consulta y busqueda

hola jamesjara

Despues de muchas pruebas, lo he conseguido.

Código MySQL:
Ver original
  1. select * from recipientes where
  2. (if((select count(*) from recipientes where email = 'variable_mail')>0,email='variable_mail',email))
  3. (if((select count(*) from recipientes where camap_id = 'variable_camp')>0,
  4. if((select count(*) from recipientes where email='variable_email')>0,camap_id,camap_id='variable_camp'),camap_id));
Según te entendí, cuando existe email, se toma como primer parametro de busqueda sin importar el resto. Si no existe, que revise campaña y muestre lo que encuentre. si no encuentra nada, que busque todos.

Puede haber una forma mas eficiente, pero esa fue la que se me ocurrió.

Espero te sirva.
__________________
Without data, You are another person with an opinion.
W. Edwads Deming
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 12:02.