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

[SOLUCIONADO] Consulta usando WHERE y LIKE

Estas en el tema de Consulta usando WHERE y LIKE en el foro de Mysql en Foros del Web. Buenos dias logro ver donde estoy mal en esta consulta en mi buscador tengo un buscador para que me haga un search en la base ...
  #1 (permalink)  
Antiguo 01/09/2016, 12:28
 
Fecha de Ingreso: mayo-2012
Mensajes: 117
Antigüedad: 11 años, 10 meses
Puntos: 1
Consulta usando WHERE y LIKE

Buenos dias logro ver donde estoy mal en esta consulta en mi buscador tengo un buscador para que me haga un search en la base de datos dependiendo del usuario correspondiente.. Digase que si un usuario tiene 3 informes la busqueda se base en esos 3 informes lo cual a mi query le puse el id del usuario, pero al momento de hacer la busqueda me trae todos los informes aun sin ser de el no esta respetando que haya puesto la clausula del id,

Código PHP:
Ver original
  1. SELECT reporte.id_reporte, reporte.no_reclamo, reporte.no_poliza, reporte.asegurado, reporte.reclamante, reporte.fecha_siniestro, reporte.no_registro, ajustador.id_ajustador, aseguradora.id_aseguradora, aseguradora.nombre, estado_reporte.id_estadoreporte, estado_reporte.estado FROM reporte INNER JOIN aseguradora ON aseguradora.id_aseguradora = reporte.id_aseguradora INNER JOIN ramo ON ramo.id_ramo = reporte.id_ramo INNER JOIN ajustador ON ajustador.id_ajustador = reporte.id_ajustador INNER JOIN estado_reporte ON estado_reporte.id_estadoreporte = reporte.id_estadoreporte WHERE reporte.id_ajustador = 18 AND reporte.no_reclamo LIKE '%as%' OR reporte.no_poliza LIKE '%as%' OR reporte.asegurado LIKE '%as%' OR reporte.reclamante LIKE '%as%' OR reporte.fecha_siniestro LIKE '%as%' OR reporte.no_registro LIKE '%as%' OR aseguradora.nombre LIKE '%as%' OR estado_reporte.estado LIKE '%as%'

WHERE reporte.id_ajustador = 18, esta como omitiendo esta linea

Que se me podria estar escapando se les agradece un monton
  #2 (permalink)  
Antiguo 01/09/2016, 12:51
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 7 meses
Puntos: 774
Respuesta: Consulta usando WHERE y LIKE

Lo que pasa es que tienes las siguientes condiciones en el where:

Código MySQL:
Ver original
  1. WHERE reporte.id_ajustador = 18
  2. AND reporte.no_reclamo LIKE '%as%'
  3. OR reporte.no_poliza LIKE '%as%'
  4. OR reporte.asegurado LIKE '%as%'
  5. OR reporte.reclamante LIKE '%as%'
  6. OR reporte.fecha_siniestro LIKE '%as%'
  7. OR reporte.no_registro LIKE '%as%'
  8. OR aseguradora.nombre LIKE '%as%'
  9. OR estado_reporte.estado LIKE '%as%'

ahora la primera condicion es que sea el id 18 y reporte like '%as%', si esa no se cumple se va a comparar todas las condiciones que tiene OR, entonces en este caso puede caer en varias de ellas aunque el id no sea 18, lo que deberias de hacer es esto:

Código MySQL:
Ver original
  1. WHERE reporte.id_ajustador = 18
  2. AND (reporte.no_reclamo LIKE '%as%'
  3. OR reporte.no_poliza LIKE '%as%'
  4. OR reporte.asegurado LIKE '%as%'
  5. OR reporte.reclamante LIKE '%as%'
  6. OR reporte.fecha_siniestro LIKE '%as%'
  7. OR reporte.no_registro LIKE '%as%'
  8. OR aseguradora.nombre LIKE '%as%'
  9. OR estado_reporte.estado LIKE '%as%')
Te recomiendo leer sobre la presedencia de operadores logicos :)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 01/09/2016, 13:04
 
Fecha de Ingreso: mayo-2012
Mensajes: 117
Antigüedad: 11 años, 10 meses
Puntos: 1
Respuesta: Consulta usando WHERE y LIKE

El mejor wow no pense que el AND me funcionaria asi solo con los parentesis lo habia usado antes pero nunca para los like... millon de gracias

Etiquetas: fecha, join, query, select, usando
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:03.